develooper Front page | perl.beginners | Postings from February 2002

Re: Creating a string with quotes and delimiters from an Array

Thread Previous | Thread Next
From:
Tanton Gibbs
Date:
February 27, 2002 14:56
Subject:
Re: Creating a string with quotes and delimiters from an Array
Message ID:
029701c1bfe1$b3732860$61486e0a@brooklyn
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" <angus.laycock@tesco.net>
To: <beginners@perl.org>
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 <thgibbs@deltafarms.com>
> To: Angus Laycock <angus.laycock@tesco.net>; <beginners@perl.org>
> 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" <angus.laycock@tesco.net>
> > To: <beginners@perl.org>
> > 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: beginners-unsubscribe@perl.org
> > For additional commands, e-mail: beginners-help@perl.org
> >
> >
>
>
> --
> To unsubscribe, e-mail: beginners-unsubscribe@perl.org
> For additional commands, e-mail: beginners-help@perl.org
>


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About