Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: ExtUtils::Embed function sequence affect output?

by rjt (Curate)
on Jul 16, 2013 at 13:14 UTC ( [id://1044597]=note: print w/replies, xml ) Need Help??


in reply to ExtUtils::Embed function sequence affect output?

C:\>perl -MExtUtils::Embed -e"ccopts" -e"ldopts"

This only works by accident. See perlrun (emphasis mine):

-e commandline

may be used to enter one line of program. If -e is given, Perl will not look for a filename in the argument list. Multiple -e commands may be given to build up a multi-line script. Make sure to use semicolons where you would in a normal program.

Or, try this:

perl -le 'print' -e '"foo"'

Replies are listed 'Best First'.
Re^2: ExtUtils::Embed function sequence affect output?
by xiaoyafeng (Deacon) on Jul 16, 2013 at 14:22 UTC
    This only works by accident. See perlrun (emphasis mine):

    This is not by accident, it's documented in perlembed:

    perldoc perlembed: Now compile this program (I'll call it *interp.c*) into an executable: % cc -o interp interp.c `perl -MExtUtils::Embed -e ccopts -e ldopts`

    I'll presume this usage is official because it document in perldoc. I think perl5 porter should make this clearer. I.E: use perl -MExtUtils::Embed -e'ldopts;' -e'ccopts;' instead.

    BTWI can use

    perl -MExtUtils::Embed -e'ldopts' && perl -MExtUtils::Embed -e'ccopts'
    to get the same result, it looks a little bit silly tho.





    I am trying to improve my English skills, if you see a mistake please feel free to reply or /msg me a correction

      This is not by accident, it's documented in perlembed: ... I'll presume this usage is official because it document in perldoc.

      ExtUtils::Embed has nothing to suggest this usage is supported. perlembed documents a particular ordering that happens to work without semicolons due to the way those two functions happen to process arguments (which is only obvious upon review of the module code). Do you really think this was the intention of the developers or documentation team?

      I think perl5 porter should make this clearer.

      I agree, the perlembed docs invite trouble. Why don't you open a perlbug?

      I.E: use perl -MExtUtils::Embed -e'ldopts;' -e'ccopts;' instead.

      Or perl -MExtUtils::Embed -e 'ldopts; ccopts' (I'd suggest -eldopts,ccopts, but while the comma works here, it doesn't everywhere.)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2024-04-24 05:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found