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

Re: Redefining Imported Subs: of scope and no

by 7stud (Deacon)
on Feb 09, 2013 at 17:45 UTC ( #1017978=note: print w/ replies, xml ) Need Help??


in reply to Redefining Imported Subs: of scope and no

Not surprising, $/="\n" assignment is always true

Ack!

5.12 is not a module (maybe you wants features)

I didn't know that. From the use docs:

use VERSION also enables all features available in the requested version as defined by the feature pragma,

In any case, like the op I'm wondering where the name 'say' is stored? It is not in main's symbol table:

use strict; use warnings; use 5.012; our $x; use Data::Dumper; say Dumper($main::{x}); #%main:: is the name of the symbol table say Dumper($main::{say}); say Dumper($main::{print}); --output:-- $VAR1 = *::x; #typeglob for 'x', in package ::(shorthand for main::) $VAR1 = undef; $VAR1 = undef;

So it appears that the name 'say' might be in the same place as the name 'print', i.e. not in the main:: symbol table. But then why doesn't 'use subs' succeed in redefining say()? Then again, I can't redefine print() with 'use subs' either:

use strict; use warnings; use 5.012; use subs qw( print ); sub print { printf "%s %s\n", shift, 'world'; } print 'hello'; --output:-- hello

I am able to redefine the chdir() builtin:

use strict; use warnings; use 5.012; use Data::Dumper; say Dumper($main::{chdir}); --output:-- $VAR1 = undef;
use strict; use warnings; use 5.012; use subs qw( chdir ); sub chdir { printf "%s %s\n", shift, 'world'; } chdir 'hello'; --output:-- hello world

It appears that some builtins are more builtin than others.


Comment on Re: Redefining Imported Subs: of scope and no
Select or Download Code
Re^2: Redefining Imported Subs: of scope and no
by Anonymous Monk on Feb 09, 2013 at 21:45 UTC

    ...

    Hit the reply link, the reply link, the link that says reply to reply to the post you want to reply to , that is the link you're supposed to click to have threaded discussion, otherwise it is not theaded discussion but a flat list, flat lists are not effective for following a conversation, that is why the twitts and other "chats" use the @username stuff, so click the reply link and its like this isn't some chat and not flat at all...

    As to your question, CORE is CORE::, many threads about CORE::, ex::override

    perl -e " CORE::say 1 ; "
    perl -e " CORE::say 1 ; say 2 "
    perl -E " CORE::say 1 ; say 2 "

      Say::Compat - Backwards compatibility wrapper for say()
      > Hit the reply link, the reply link, the link that says reply to reply to the post you want to reply to , that is the link you're supposed to click to have threaded discussion, otherwise it is not theaded discussion but a flat list, flat lists are not effective for following a conversation, that is why the twitts and other "chats" use the @username stuff, so click the reply link and its like this isn't some chat and not flat at all...

      Great hip hop ... I'd love to see a XKCD referencing this song! =)

      Cheers Rolf

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2014-07-26 04:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (175 votes), past polls