Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Require Carp - doesn't

by Wiggins (Friar)
on Dec 07, 2006 at 17:13 UTC ( #588398=perlquestion: print w/ replies, xml ) Need Help??
Wiggins has asked for the wisdom of the Perl Monks concerning the following question:

In order to use perlcc. (no comments needed), I need to change all of the 'use' commands to 'require' for inclusion in the compile.

require threads ; require threads::shared ; require IO::Socket; require Thread::Semaphore; require Getopt::Std; require Carp;

Works for all but Carp.

PerlThreads]# perlcc -o xm xm.pl /usr/bin/perlcc: xm.pl did not compile: String found where operator expected at xm.pl line 98, near "carp "bad + args"" (Do you need to predeclare carp?) String found where operator expected at xm.pl line 144, near "carp "N +amed pipe (-n) required "" (Do you need to predeclare carp?) String found where operator expected at xm.pl line 151, near "carp "p +roblem with the NamedPipe ($opt_n) "" (Do you need to predeclare carp?) ....

obvious - don't use Carp. Other than that, any suggestions or explanations?

Comment on Require Carp - doesn't
Select or Download Code
Re: Require Carp - doesn't
by idsfa (Vicar) on Dec 07, 2006 at 17:20 UTC

    Did you Super Search? Steve_p just wrote about this.


    The intelligent reader will judge for himself. Without examining the facts fully and fairly, there is no way of knowing whether vox populi is really vox dei, or merely vox asinorum. — Cyrus H. Gordon
      The thread referred to is about the dynamic loading, it usefulness, and attempted optimizations. I know I use Carp; it is needed for the compile.

      But what I did find (looking at code examples) is that "requiring warnings" prior solved the problem.

      Tis strange that Carp doesn't complain when a dependency is not present.

        This has nothing to do with Carp's dependencies (and it doesn't depend on warnings). In fact, your "fix" is actually incorrect and buggy and Steve Peters posted his comment to warn people away from doing that! It has nothing to do with dynamic loading either. It has everything to do with subroutine prototypes, as Steve explained.

        Perl hasn't loaded Carp when it tries to compile the carp() calls. Without parentheses, it has no idea how many arguments the function should take (or even if carp is a function call at all), so it warns.

        It would do that even if you weren't trying to use perlcc or Carp.

Re: Require Carp - doesn't
by diotalevi (Canon) on Dec 07, 2006 at 22:21 UTC

    perlcc doesn't work anyway. Perhaps you want PAR instead?

    ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://588398]
Approved by andyford
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2014-08-22 03:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (146 votes), past polls