in reply to Checking whether two variables have the same structure

  1. For some reason, using your code I get...
       ...
       \$foo -> oS
       ...
    
    which doesn't seem quite right.

  2. I gotta side with George_Sherston on this one, It's all about Data::Dumper. Here's what I can up with for generating the grammer described (I think it can handle any case the orriginal post did)...
    sub my_describe { my $s = Dumper(@_); $s =~ s/\'[^\']*\'//g; # eliminate scalars $s =~ s/[^\[\{\'\\]//g; # cut to the heart of the structure # + because we only care about one member of hashes/arrays $s =~ s/\[+/Ao/g; $s =~ s/\{+/Ho/g; $s =~ s/\\+/r/g; return $s . "S"; }
UPDATE: I just realized this can't handle something really basic: \\\\\\$foo. Oh well, that's why version numbers were invented