Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.85k stars 527 forks source link

man attributes does not mention the lvalue attribute #1188

Closed p5pRT closed 20 years ago

p5pRT commented 24 years ago

Migrated from rt.perl.org#2157 (status was 'resolved')

Searchable as RT2157$

p5pRT commented 24 years ago

From dcd@tc.fluke.com

Created by dcd@tc.fluke.com

While walking through attributes.pm and trying to figure out where the .xs code was that was being called as bootstrap I came upon xsutils.c and noticed that lvalue was one of the attributes\, but it is not listed in the attributes.pm man page.

lvalue is mentioned in perlsub but why isn't it mentioned in attributes.pm or perldoc attributes?

Perl Info ``` Site configuration information for perl v5.5.650: Configured by dcd at Wed Feb 9 12:36:33 PST 2000. Summary of my perl5 (revision 5.0 version 5 subversion 650) configuration: Platform: osname=linux, osvers=2.3.40, archname=i686-linux uname='linux dd 2.3.40 #1 fri jan 21 12:06:36 pst 2000 i686 ' config_args='-Doptimize=-g -de -Dcf_email=dcd@tc.fluke.com' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usesocks=undef useperlio=undef d_sfio=undef use64bits=undef uselargefiles=define usemultiplicity=undef Compiler: cc='cc', optimize='-g', gccversion=2.7.2.3 cppflags='-Dbool=char -DHAS_BOOL -DDEBUGGING -I/usr/local/include' ccflags ='-Dbool=char -DHAS_BOOL -DDEBUGGING -I/usr/local/include' stdchar='char', d_stdstdio=define, usevfork=false intsize=4, longsize=4, ptrsize=4, doublesize=8 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 alignbytes=4, usemymalloc=n, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /shlib /lib /usr/lib libs=-lgdbm -ldbm -ldb -ldl -lm -lc libc=/lib/libc.so.5.4.44, so=so, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' Locally applied patches: @INC for perl v5.5.650: /usr/local/lib/perl5/5.5.650/i686-linux /usr/local/lib/perl5/5.5.650 /usr/local/lib/perl5/site_perl/5.5.650/i686-linux /usr/local/lib/perl5/site_perl/5.5.650 /usr/local/lib/perl5/site_perl . Environment for perl v5.5.650: HOME=/home/dcd LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/home/dcd/bin:/sbin:/usr/local/bin:/bin:/usr/bin:/usr/X11/bin:/usr/games:/usr/local/samba:/home/hobbes/tools/scripts:/home/hobbes/tools/linux:/usr0/hobbes/tools/scripts:/usr0/dcd/bin:/apps/general/bin:/usr/public PERL_BADLANG (unset) SHELL=/bin/bash ```
p5pRT commented 24 years ago

From [Unknown Contact. See original ticket]

David Dyck (lists.p5p)​:

lvalue is mentioned in perlsub but why isn't it mentioned in attributes.pm or perldoc attributes?

Good question.

Inline Patch ```diff --- attributes.pm~ Wed Feb 16 19:18:58 2000 +++ attributes.pm Wed Feb 16 19:23:46 2000 @@ -169,6 +169,12 @@ as described there. It also means that a subroutine so marked will not trigger the "Ambiguous call resolved as CORE::%s" warning. +=item lvalue + +Indicates that the referenced subroutine is a valid lvalue and can +be assigned to. The subroutine must return a modifiable value such +as a scalar variable, as described in L. + =back There are no built-in attributes for anything other than subroutines. -- ```

Cats are smarter than dogs. You can't make eight cats pull a sled through the snow.