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