I apologize for not stating it earlier...mea culpa (and if I didn't have the
time, I shouldn't post to the beginners list anyway!)

the ? : operator is like an if else statement
if actually expands to (sort of)

if( /\D/ ) {
  $string .= "'$_',";
}
else {
  $string .= "$_,";
}

The regular expression /\D/ matches anything that is not a digit.  Since we
do not provide a variable for it to operate on, it chooses the default
variable $_ which is set by the preceeding foreach loop.  The .= is the
string concatenation operator with assignment...it actually expands to
$string = $string . "'$_',";

Hope this helps!
Tanton
----- Original Message -----
From: "Angus Laycock" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, February 26, 2002 1:33 PM
Subject: Re: Creating a string with quotes and delimiters from an Array


> I know I now have the result but how does it do it?
>
> $string .= /\D/ ? "'$_'," : "$_,";
>
> If you have the time.
>
> Thanks again
>
> Gus
>
>
> ----- Original Message -----
> From: Tanton Gibbs <[EMAIL PROTECTED]>
> To: Angus Laycock <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> Sent: Wednesday, February 27, 2002 10:30 PM
> Subject: Re: Creating a string with quotes and delimiters from an Array
>
>
> > Your best bet is to do this with a foreach loop
> >
> > my $string = '';
> > my @array = qw( alf bert charlie 4 )
> > foreach( @array ) {
> >   $string .= /\D/ ? "'$_'," : "$_,";
> > }
> > ----- Original Message -----
> > From: "Angus Laycock" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Tuesday, February 26, 2002 1:07 PM
> > Subject: Creating a string with quotes and delimiters from an Array
> >
> >
> > Hi,
> >
> > I have an array ----> @array = qw(alf bert charlie 4)
> >
> > and I want a string that contains this value <
'alf','bert','charlie','4'
> >
> > with the single quotes and commas.
> >
> > I know I can do this $string = join ( ',' , @array); which gives me
> > this ----> < one|two|three|four> but how do I get the single quotes
around
> > each word.
> >
> >
> > Also, how can I check if one of the values is numeric so I dont put
quotes
> > around it? So the result is like this ---> <  'alf','bert','charlie',4 >
> >
> > Thanks
> >
> >
> > Gus
> >
> >
> >
> > --
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to