Re: [perl #112916] please enhance 'use' and "use parent" to use 'base's modfind ability

Hello,

as the author of parent.pm, I think that some historical context will be 
beneficial. Most of this can be found by using Google or another search 
engine with the appropriate search terms. Please read these links to 
familiarize yourself with the reasons why base.pm is as it is, and why 
parent.pm exists:

http://www.nntp.perl.org/group/perl.perl5.porters/2007/07/msg127273.html

Also, a short description of some situations where base.pm fails to load 
a file when you touch a namespace in the wrong place:

http://perlmonks.org/?node_id=738152

I also gave a talk at the German Perl Workshop on the problems with 
base.pm. Unfortunately it's in German only, but maybe Babelfish gives 
you an amusing translation [1].

http://corion.net/talks/Probleme-mit-base.pm/probleme-mit-base.pm-talk.html

 >    Are you sure use 'base' will not load classes if you've referenced 
 > a var from the class, or is it smart enough to look for previous
 > definitions of code?
You could look at the code of base.pm to clear that question. The code 
is surprisingly long for something that is documented as basically being 
five lines.

 > But can anyone think of any systems or subsystems in computer
 > science where the default
 > is to ignore in-memory copies of them in preference for searching
 > on disk?
What does "computer science" have to do with the topic here? Please 
consider that you are talking in a bug report/feature request, and 
appeal to general ideas of "computer science" need to be justified as in 
how they relate to the bug at hand. Consider for example at the 
Perl-built-in "sysread", which does not use any buffering but asks the 
operating system to load data from disk.

"Caching at every level" is not the motto of Perl.

 > So why is perl backwards from what would seem to be the norm?
 > [...]
 > Of course this presumes correct implementation of checking that
 > a class's code is in memory, and not just data.
Please familiarize yourself with the problems that base.pm has, to see 
why changes to the API of parent.pm just won't happen. All the arguments 
about maintaining backwards compatibility have already been made and I 
don't want to repeat them.

-max

[1] 
http://98.139.168.220/babelfish/translate_url_content?.intl=de&lp=de_en&trurl=http%3A%2F%2Fcorion.net%2Ftalks%2FProbleme-mit-base.pm%2Fprobleme-mit-base.pm-talk.html
0
corion
5/19/2012 7:30:48 AM
perl.perl5.porters 48287 articles. 1 followers. Follow

0 Replies
1178 Views

Similar Articles

[PageSpeed] 58

Reply:

Similar Artilces:

RFC: interactions between "use bytes", "use locale", and "use feature 'unicode_strings'
I am waiting for blead to reopen before I submit a patch for extending feature unicode_strings to matching \s, and \w. In documenting it, it occurred to me that the existing implementation is wrong, along with the existing interaction between use bytes and use locale. To refresh your memory, "use feature 'unicode_strings'" is supposed to mean that even non-utf8 data is to be considered to have Unicode semantics. In practice, this only affects the characters from 128-255. It is new in 5.12, and is implemented there only on functions that change case, such a...

RFC: Make "use 5.14" select "use re '/a' " ?
I have pushed to blead (with Jesse's permission) the last commits (besides doc and any bug fixes) that enable the /a regular expression modifier. Presuming it works ok, should this become the default method of operation, signified by a "use 5.014" ? On 1/17/11 11:02 AM, Karl Williamson wrote: > Presuming it works ok, should this become the default method of > operation, signified by a "use 5.014" ? So when I upgrade my code, I have to put "no re '/a'" in every file? Why, oh why? On Mon, 17 Jan 2011, Elliot Shank wrote: > ...

I'm getting an error using NavigateURL ='<%# Eval("Url") %>', it works when using NavigateURL="intro.aspx"
I'm getting an error using NavigateURL ='<%# Eval("Url") %>', it works when I use NavigateURL="intro.aspx" Server Error in '/orthoassist' Application. The resource cannot be found. Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. Requested URL: /orthoassist/intro.aspx <asp:HyperLink runat="server" ID="hl1" Text=...

WARNING: "Application 'sybinit' is using character set 'iso_1', but the Replication Server is using character set 'utf8'
RepServer 12.6 ESD#2 RSSD on ASE 12.5.1 ESD#2 I have the following when I created my first RepServer: 2004/06/22 11:22:04 waiting for server 'SYDNEY_RS' to boot... 2004/06/22 11:22:09 Task succeeded: start the Replication Server. 2004/06/22 11:22:09 Running task: configure the Replication Server. 2004/06/22 11:22:09 SQL Server message: msg 14125, level 11, state 0 2004/06/22 11:24:18 WARNING: "Application 'sybinit' is using character set 'iso_1', but the Replication Server is using character set 'utf8&#...

Q: cannot use 'use base' without quote ?
------=_Part_90043_11393157.1184735584301 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi! Nice to see you. I'm new to OOP Peal. Let me ask you a silly question. When I try to use 'use base', I encountered an problem. I wrote this program; --------------------------------------------------------------- Animal.pm package Animal; sub speak { my $class = shift; print "a $class goes ", $class->sound, "!\n"; } sub AUTOLOAD { my $class = shift; print "AUTOLOA...

[ID 20020307.006] [BUG][use encoding] use encoding 'greek'; print "not" unless pack("U*", 0x3af) eq pack("C*", 0xdf) prints "not"!
This is a bug report for perl from "Anton Tagunov" <tagunov@motor.ru>, generated with the help of perlbug 1.33 running under perl v5.7.3. ----------------------------------------------------------------- Hello, developers! Hello, Jarkko! Please consider the following test being added: --- lib/encoding.t.orig Fri Feb 8 07:12:05 2002 +++ lib/encoding.t Thu Mar 7 19:38:39 2002 @@ -1,4 +1,4 @@ -print "1..19\n"; +print "1..20\n"; BEGIN { if (ord("A") == 193) { @@ -89,3 +89,7 @@ print "not " unless "\x...

what namespace do i need to "using" to use 'e.Item' ??
I'm trying to use (Label)e.Item.FindControl("Label1") - to get the text value of a label within a datalist for use in my code-behind, but my VS2005 will not allow me to use "Item" after "e." - I'm thinking it's because I'm missing a necessary namespace "USING" include at the top of the page. can anyone help?  The data type of "e" depends on the context and based on that it will have different properties.Can you post the event handler which has this "e" that you are trying to use?And lastly, you do not have to ...

Using '[' and ']' characters...
Has anyone come across the following problem when using PD7.5 on SQL Server 2000? PD7.5 does not generate the '[' and ']' characters for stored procedures. Example: CREATE PROC P_Test AS SELECT A AS [Column A] FROM A_Table Generated script: CREATE PROC P_Test AS SELECT A AS Column A FROM A_Table Thanks in advance, Aiden That's interesting. In 7.5, if I put [[Column A]] in the procedure definition, I get [Column A]. In 8.0 it works correctly. -- Michael F. Nicewarner [TeamSybase] mailto:psyclo@datamodel.org http://www.datamode...

HOw to use __doPostback('','')?????????
Hi i use the window.open() javascript function, then i want to use the __doPostback('','') javascript function to force the page post back , so that i can use the parameter pass from the child window in the page.ispostback event. but i try to use __doPostback('','') in my 1.1 .net framework, nothing happen????? how to use the __doPostback('','') or how to let the page have .postback event?SelfConfident is get from the Xperience You need to use the server-side function: Page.GetPostBackEventReference and tell it what control's event you want to fire. The __doPostBa...

'use' and 'require'
------_=_NextPart_001_01C35AB9.4ADA5CA0 Content-Type: text/plain Hello all, Is there a way to 'variablize' the version for a 'use' statement. This way, if I wanted to change version I could only change it in one place with those changes cascading across all apps. Usage would look something like this: use $perl_version; Thanks in advance, Jason Allison Principal Engineer ARINC Incorporated Office: (410) 266-2006 FAX: (410) 573-3026 ------_=_NextPart_001_01C35AB9.4ADA5CA0-- Allison, Jason (JALLISON) wrote: > Hello all, > > Is there ...

''''''''''''''''''''
Name: haznen Email: haznenatyahoodotcom Product: Gran Paradiso Alpha 8 Summary: '''''''''''''''''''' Comments: '''''''''''''''''''''''''''''''''''' Browser Details: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20061204 UGES/1.7.2.0 GranParadiso/3.0a1 From URL: http://www.mozilla.org/projects/granparadiso/ Note to readers: Hendrix gives...

What does "use vars '@ISA';@ISA = 'LWP::UserAgent';my $agent = __PACKAGE__->new;"
------=_NextPart_000_0009_01C54F1B.7B7BCF30 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Can someone help me understand Lincoln Stein's code I found in his book on network programming with perl? This is the beginning of a screen scraper. I thought ISA was an array of ancestors used exclusively for defining descendant classes. I guess I'm wrong. What the heck is going on here? I understand the "use" statements, but the subsequent statements baffle me. Thanks, Siegfried use LWP; use PromptU...

RFC: "use re 'strict'"
I'm proposing two additions to the "use re" pragma. One is covered here, and the other in a separate thread, to lessen confusion. 'strict' would mean that any regex compiled within its scope would be subjected to stricter checking than otherwise. For example, currently, $ perl -Dr -le 'qr/[z[:ascii]]/' Compiling REx "[z[:ascii]]" rarest char ] at 0 Final program: 1: ANYOF[:[acisz] (12) 12: EXACT <]> (14) 14: END (0) What the programmer almost certainly intended, but neglected to include a crucial colon, was silently...

Where to use 'use'
Hello All, I have a trivial question. I have a perl script, with several sub-routines. In one of those routines, I currently have listed 'use Date::Calc'. So that package is therefore only available (and needed) in that one sub-routine. My question is, should all 'use' statements be placed at the top of the script, or only in routines that need them? -Jeff __________________________________________________ Do you Yahoo!? Yahoo! Web Hosting - establish your business online http://webhosting.yahoo.com There is no added value trying to make a module ...

superreview requested: [Bug 378544] General's Default Feed Viewer's " =?UTF-8?Q?Select=E2=80=A6?=" doesn't use real elipsis
Stuart Morgan <stuart.morgan@alumni.case.edu> has asked Mike Pinkerton <mikepinkerton@mac.com> for superreview: Bug 378544: General's Default Feed Viewer's "Select=E2=80=A6" doesn't use r= eal elipsis https://bugzilla.mozilla.org/show_bug.cgi?id=3D378544 Attachment 264750: changed https://bugzilla.mozilla.org/attachment.cgi?id=3D264750&action=3Dedit= ...

Web resources about - Re: [perl #112916] please enhance 'use' and "use parent" to use 'base's modfind ability - perl.perl5.porters

Resources last updated: 12/26/2015 3:44:34 AM