Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: perl onliner on multiple files

by abhay180 (Sexton)
on Feb 08, 2013 at 21:16 UTC ( [id://1017889]=note: print w/replies, xml ) Need Help??


in reply to Re: perl onliner on multiple files
in thread perl onliner on multiple files

When i run this i get following error mesg:
% perl -nE "/: / and $c += (split/: /)[0]; if( eof(ARGV) ){ say qq[SUM +.$ARGV =$c]; $c=0 }" tmp_* c: Undefined variable.

Replies are listed 'Best First'.
Re^3: perl onliner on multiple files
by BrowserUk (Patriarch) on Feb 08, 2013 at 22:35 UTC

    Not from Perl you don't. That must be coming from your shell.

    Try switching the quotes if you are on linux. Ie:

    perl -nE'/: / and $c+= (split/: /)[0]; if( eof(ARGV) ){ say qq[SUM.$AR +V =$c]; $c=0 }' tmp_*

    If you are a perl/*nix user, you ought to know that.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
Re^3: perl onliner on multiple files
by 7stud (Deacon) on Feb 08, 2013 at 23:54 UTC
    In a bash shell, I get:
    $ perl -nE "/: / and $c += (split/: /)[0]; if( eof(ARGV) ){ say qq[SUM +.$ARGV =$c]; $c=0 }" tmp_* syntax error at -e line 1, near "+=" syntax error at -e line 1, near "; =" Execution of -e aborted due to compilation errors.

    And:

    $ c=10 $ echo c c $ echo $c 10 $ echo "The total is: $c" The total is: 10 $ echo 'The total is: $c' The total is: $c
    So within double quotes, the shell expands $variables, which of course happens *before* the shell hands the text over to the perl command. That is similar to the way the shell expands your glob: tmp_* and replaces it with a list of file names, which is what the perl command ends up seeing.
      ok. i figured that out...but since i was using perl version 5.8, the -E option and "say" keyword were not recognized. Once i use the perl version 5.10 and above...the above line works exactly the way i want it to. Thanks a lot.
Re^3: perl onliner on multiple files
by Anonymous Monk on Feb 09, 2013 at 09:24 UTC
    :) Then give up the oneliners, save it to a file

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1017889]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-03-28 20:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found