in reply to Re: Eval and $@% ...
in thread Eval and $@% ...

A GLOB is more problematic. You have to put it into brackets so add an extra if statement...

You're thinking of glob. The GLOB ref type refers to typeglobs, for which you can just use an asterik.

So you should just be able to add this to your hash:

my %mapping = ( #... GLOB => '*', #... );

bbfu
Seasons don't fear The Reaper.
Nor do the wind, the sun, and the rain.
We can be like they are.

Replies are listed 'Best First'.
Re:{3} Eval and $@% ...
by jeroenes (Priest) on Jun 19, 2001 at 02:09 UTC
    Look at perlref. GLOBs are Handles in general, so read them in array context with brackets like I did.

    I have never tried to derefence general GLOBs with a '*', aren't they just symbolics like perlref tells us?:

    Symbolic references are names of variables or other objects, just as a symbolic link in a Unix filesystem contains merely the name of a file. The *glob notation is a kind of symbolic reference. (Symbolic references are sometimes called "soft references", but please don't call them that; references are confusing enough without useless synonyms.)

    Jeroen

      Look at perlref. GLOBs are Handles in general, so read them in array context with brackets like I did.

      Only when used as a filehandle. For a variable name there is a scalar ($), a list (@), a hash (%), a filehanlde, and a format. Instead of saying:

      $foo=$bar; @foo=@bar; %foo=%bar;
      you can just say:
      *foo = *bar;
      So, when you dereference a type glob, you don't add the <foo> unless you are reading from a file handle.

      The 15 year old, freshman programmer,
      Stephen Rawls

        No, you can't "just say" that
        $foo=$bar; @foo=@bar; %foo=%bar;
        and
        *foo = *bar;
        are equivalent. The first set of assignments sets $foo, @foo and %foo from the values of $bar, @bar and %bar, and that's it. If you later assign to $bar or $bar [3], $foo and $foo [3] remain unchanged. However, with the glob assignment, $foo, @foo and %foo become aliases for $bar, @bar and %bar. Modifications of the one are reflected in the other.

        -- Abigail