develooper Front page | perl.perl5.porters | Postings from July 2011

[perl #94984] Prototypes on infix ops

Thread Next
Father Chrysostomos
July 17, 2011 15:25
[perl #94984] Prototypes on infix ops
Message ID:
# New Ticket Created by  Father Chrysostomos 
# Please include the string:  [perl #94984]
# in the subject line of all future correspondence about this issue. 
# <URL: >

Quoth perlfunc:

       prototype FUNCTION
               Returns the prototype of a function as a string (or "undef" if
               the function has no prototype).  FUNCTION is a reference to, or
               the name of, the function whose prototype you want to retrieve.

               If FUNCTION is a string starting with "CORE::", the rest is
               taken as a name for a Perl builtin.  If the builtin is not
               overridable (such as "qw//") or if its arguments cannot be
               adequately expressed by a prototype (such as "system"),
               prototype() returns "undef", because the builtin does not
               really behave like a Perl function.  Otherwise, the string
               describing the equivalent prototype is returned.

Let me emphasize ‘if its arguments cannot be adequately expressed by a prototype...prototype() returns "undef", because the builtin does not really behave like a Perl function’.

There are several infix operators that do not follow that:

and  ()
cmp  Error: Cannot find an op number for cmp
eq   ($$)
ge   ($$)
gt   ($$)
le   ($$)
lt   ($$)
ne   ($$)
or   ()
x    Error: Cannot find an op number for x
xor  ($$)

Shouldn’t these all just return undef?
Site configuration information for perl 5.14.0:

Configured by sprout at Wed May 11 13:45:58 PDT 2011.

Summary of my perl5 (revision 5 version 14 subversion 0) configuration:
  Snapshot of: eb70bb4a400e88a66c7e10414a2d52b5da4cfd1f
    osname=darwin, osvers=10.5.0, archname=darwin-thread-multi-2level
    uname='darwin pint.local 10.5.0 darwin kernel version 10.5.0: fri nov 5 23:20:39 pdt 2010; root:xnu-1504.9.17~1release_i386 i386 '
    config_args='-Dusedevel -de -Duseithreads -Doptimize=-g'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
    cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
    cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.2.1 (Apple Inc. build 5664)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector'

Locally applied patches:

@INC for perl 5.14.0:

Environment for perl 5.14.0:
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PERL_BADLANG (unset)

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About