Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: A new perl {cough} feature?

by premchai21 (Curate)
on Feb 17, 2002 at 16:20 UTC ( [id://146002]=note: print w/replies, xml ) Need Help??


in reply to A new perl {cough} feature?

This seems to be a bug in Data::Dumper. With the perl debugger (before the grep, thanks tye):

main::(-:1): my @matrix = (); DB<1> n main::(-:2): $matrix[2]->[3] = "What's goin' on?"; DB<1> n main::(-:3): grep {/Huh?/}@$_ for @matrix; DB<1> print @matrix ARRAY(0x8103f2c) DB<2> x @matrix 0 undef 1 undef 2 ARRAY(0x8103f2c) 0 empty slot 1 empty slot 2 empty slot 3 'What\'s goin\' on?' DB<3>

With Data::Denter:

Before grep: @ ? ? @ ? ? ? What's goin on? After grep: @ @ @ @ ? ? ? What's goin on?

... indicating undef (?) before the grep, as normal, and empty array refs (@) after the grep, as normal due to autovivification upon array dereference. Only Data::Dumper seems to get it wrong, or at least what seems to be wrong.

Replies are listed 'Best First'.
Re: Re: A new perl {cough} feature?
by Anarion (Hermit) on Feb 17, 2002 at 16:32 UTC
    Yes, but try this one:
    use Data::Denter; my @matrix = (); $matrix[2]->[3]= "What's goin on?"; print "Before grep:\n", Denter(\@matrix); #print grep{ /Huh?/ }@$_ for @matrix; print map { grep{ /Huh?/ }@$_ } @matrix; print "\nAfter grep:\n", Denter(\@matrix);


    Where is the bug then in Data::Dumper or in Data::Denter or in map, grep, for or autovivification?

    $anarion=\$anarion;

    s==q^QBY_^=,$_^=$[x7,print

Re: Re: A new perl {cough} feature?
by belg4mit (Prior) on Feb 17, 2002 at 17:28 UTC
    It's not unreasonable that it is a Data::Dumper flaw. Recently I was using Data::Dumper on some not so complex structures and some of the values it output were array-refs (where no array-ref ought to live) i.e. it output the scalar form of the array-ref, not even an evalable form.

    --
    perl -pe "s/\b;([st])/'\1/mg"

(tye)Re: A new perl {cough} feature?
by tye (Sage) on Feb 18, 2002 at 14:16 UTC

    Quick clarification: Note that the first set of output is from before grep gets run. It is the grep that autovivifies those empty array references.

            - tye (but my friends call me "Tye")

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2024-04-19 08:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found