Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Content-Disposition: inline Content-Transfer-Encoding: binary MIME-Version: 1.0 Cc: module-build-general AT lists DOT sourceforge DOT net, cygwin AT cygwin DOT com, RandyS AT ThePierianSpring DOT org, perl5-porters AT perl DOT org Subject: Re: Cwd::cwd() bug??? on Cygwin In-Reply-To: <20031121110334.3098.7@llama.elixent.com> from Nick Ing-Simmons on Fri, 21 Nov 2003 11:03:34 +0000 References: <3FAF853D DOT 4000202 AT urth DOT org> <3FB00F47 DOT 10400 AT ThePierianSpring DOT org> < 3FB0ACC8 DOT 6030402 AT urth DOT org> <3FB30BB3 DOT 10405 AT ThePierianSpring DOT org> < 3FB50640 DOT 2010908 AT urth DOT org> <3FB55A73 DOT 5060806 AT ThePierianSpring DOT org> < 3FB64CB5 DOT 4060802 AT ThePierianSpring DOT org> <3FBD695A.9020307@ ThePierianSpring .org> <20031121110334 DOT 3098 DOT 7 AT llama DOT elixent DOT com> Content-Type: text/plain; charset="UTF-8" To: nick DOT ing-simmons AT elixent DOT com Message-Id: <20031121210304.2796.3@llama.ing-simmons.net> Date: Fri, 21 Nov 2003 21:03:04 +0000 From: Nick Ing-Simmons Reply-To: Nick Ing-Simmons Nick Ing-Simmons writes: >>> package MyModule; >>> use Module; >>> use base 'Module'; >>> use Cwd; > >If you moved that above the use Module line then when Module.pm >was compiled it would know Cwd::cwd was a function. Sorry I could not see wood for the trees! What is happening is that in MyModule you 'use Cwd', which EXPORTS 'cwd' by default - so now there is a MyModule::cwd which is a legitimate over-ride of base class's version so... You call MyModule->new which inherits from Module->new - so far so good. But then Module::new calls MyModule->cwd which is the imported one. So fix is: package MyModule; use Module; use base 'Module'; use Cwd (); # No imports! Alternatively Module's new could do sub new { my $p = shift; Module->cwd; # ignore override by derived class. } But that rather spoils it as a base class. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/