Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Require Carp - doesn't

by Wiggins (Hermit)
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 /usr/bin/perlcc: did not compile: String found where operator expected at line 98, near "carp "bad + args"" (Do you need to predeclare carp?) String found where operator expected at line 144, near "carp "N +amed pipe (-n) required "" (Do you need to predeclare carp?) String found where operator expected at 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?

Replies are listed 'Best First'.
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?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://588398]
Approved by andyford
[Corion]: Hmm - and I have to check whether the rate today is cheaper than what I booked for, and then maybe cancel my old booking and book the new one (not necessarily in that order :-D )
hippo is still undecided on YAPC::EU
LanX hippo doesn't want to leave his country ... ehm .... riverbed?

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (8)
As of 2018-06-20 09:31 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (116 votes). Check out past polls.