On Jan 8, 2008 9:24 AM, Robert Citek <[EMAIL PROTECTED]> wrote: > On Jan 8, 2008 8:59 AM, Chas. Owens <[EMAIL PROTECTED]> wrote: > > On Jan 7, 2008 6:59 PM, Robert Citek <[EMAIL PROTECTED]> wrote: > > > How can I get rid of the @foo? > > > > > > This does what I want, but uses the "temporary" variable @foo: > > > > > > $ ls | perl -e '@foo=<>; chomp @foo ; print join(" ", @foo)' > > > > > > This eliminates the temporary variable but doesn't work: > > > > > > $ ls | perl -e 'print join(" ", chomp(<>))' > > > > > > Thanks in advance. > > > > > > Regards, > > > - Robert > > > > It looks like you are trying to turn this > > > > foo > > bar > > baz > > > > into this > > > > foo bar baz > > > > A much better way is this > > > > perl -pe 's/\n/ /'; > > That would be a better perl way if I was just trying to concatenate a > list of items. If I was, an even better way would be to substitue > xargs for perl: > > $ ls | xargs > > What I really want to know is if there's a way to eliminate the > temporary variable. If not, that's fine. I was just wondering if > there's something I'm overlooking. Come to think of it, maybe I could > use map.
Here's an example closer to the real problem: $ ls | perl -e '@F=(<>) ; chomp @F ; print "('\''" . join("'\'',\n'\''",@F) . "'\'') \n" ; ' Regards, - Robert -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/