Re: [OT] Overridding a module's use of a function
It's funny you should ask, because I just finished reading that section today! :-) On pg 306-7 of the Camel (3rd edition): *CORE::GLOBAL::glob = sub { my $pat = shift; my @got; # do whatever return @got; } will override a built-in function everywhere, regardless of namespaces. The method you use (namely overriding CORE::function) restricts the overriding of the function "to the package that requests the import." At 05:15 PM 10/11/01 -0500, George Sanderson wrote: >I discovered that File::NCopy uses the function "glob" to expand file >names. My problem is that I need to pass file names that have spaces in >them and "glob" does not process them. So I did the following override (I >do not need to expand the file names): > >package Apache::AAM; >. . . >package File::NCopy; >use subs qw(glob); >sub glob {@_}; >package Apache::AAM; >. . . > >Is there a better way to do this? Drew Taylor JA[P|m_p|SQL]H http://www.drewtaylor.com/ Just Another Perl|mod_perl|SQL Hacker mailto:[EMAIL PROTECTED] *** God bless America! ***
Re: [OT] Overridding a module's use of a function
At 5:15 PM -0500 10/11/01, George Sanderson wrote: >I discovered that File::NCopy uses the function "glob" to expand file >names. My problem is that I need to pass file names that have spaces in >them and "glob" does not process them. So I did the following override (I >do not need to expand the file names): > >package Apache::AAM; >. . . >package File::NCopy; >use subs qw(glob); >sub glob {@_}; >package Apache::AAM; >. . . *File::NCopy::glob = sub {@_}; # should do the same thing I think _Advanced Perl Programming_ covered overriding subs with subrefs... Rob -- "Only two things are infinite: The universe, and human stupidity. And I'm not sure about the former." --Albert Einstein
[OT] Overridding a module's use of a function
I discovered that File::NCopy uses the function "glob" to expand file names. My problem is that I need to pass file names that have spaces in them and "glob" does not process them. So I did the following override (I do not need to expand the file names): package Apache::AAM; . . . package File::NCopy; use subs qw(glob); sub glob {@_}; package Apache::AAM; . . . Is there a better way to do this? ++ | George Sanderson <[EMAIL PROTECTED]> | http://www.xorgate.com ++