Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: import list

by Perlbotics (Chancellor)
on Jun 23, 2012 at 19:39 UTC ( #978006=note: print w/replies, xml ) Need Help??

in reply to import list

I think it's mainly defined by pure convention as intended by the module author's idea of the modules interface. Seems, the module author's intention here was to let the argument resemble a command-line option switch.

Basically use Module qw(a b c d); is translated to BEGIN{ require Module; Module->import(qw(a b c d)); } (see use).

In Module::import(), the author has the freedom to do anything with the given list (after removing the module's name from the parameter list) like using it as-is ... @list = qw(a b c d) ... or interpreting it as a flattened hash ... %pairs = (a => 'b', c => 'd') ... or as a parameter list ... my($a,$b,$c,$d) = qw(a b c d) ... and so on. Then s/he can treat the arguments as needed, like filtering, grouping, normalizing, etc.

In this case: less `perldoc -l English`

... # Grandfather $NAME import sub import { my $this = shift; # 'English' my @list = grep { ! /^-no_match_vars$/ } @_ ; # anything that is +not '-no_match_vars' local $Exporter::ExportLevel = 1; if ( @_ == @list ) { ...

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://978006]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2018-06-19 01:53 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (111 votes). Check out past polls.