http://qs321.pair.com?node_id=124451

princepawn has asked for the wisdom of the Perl Monks concerning the following question:

when you use h2xs -A -X -n Simple::Class, h2xs creates the directory Simple/Class and puts the file Class.pm in Simple/Class instead of Simple, but as the transcript below shows, I can't do a perl -I. from the same directory I created the class and have a simple use Simple::Class work... does anyone know why this is?
[localhost:Seamstress/Seamstress/t] metaperl% head -4 ./Simple/Class/C +lass.pm package Simple::Class; 1; [localhost:Seamstress/Seamstress/t] metaperl% perl -I. -MSimple::Class Can't locate Simple/Class.pm in @INC (@INC contains: . /Users/metaperl +/install/\ lib/site_perl/5.7.2/darwin /Users/metaperl/install/lib/site_perl/5.7.2 + /Users/m\ etaperl/install/lib/5.7.2/darwin /Users/metaperl/install/lib/5.7.2 /Us +ers/metap\ erl/install/lib/site_perl/5.7.2/darwin /Users/metaperl/install/lib/sit +e_perl/5.\ 7.2 /Users/metaperl/install/lib/site_perl .). BEGIN failed--compilation aborted. [localhost:Seamstress/Seamstress/t] metaperl% mv ./Simple/Class/Class. +pm ./Simp\ le/ [localhost:Seamstress/Seamstress/t] metaperl% perl -I. -MSimple::Class [localhost:Seamstress/Seamstress/t] metaperl%
  • Comment on locating a module created with h2xs via require and use --- effect of extra directory?
  • Select or Download Code

Replies are listed 'Best First'.
Re: locating a module created with h2xs via require and use --- effect of extra directory?
by chipmunk (Parson) on Nov 09, 2001 at 23:58 UTC
    The files created by h2xs are meant to be used as an installation package. That is, after using h2xs to set up the files, you should install the module with perl Makefile.PL; make; make test; make install in order to use it.
Re: locating a module created with h2xs via require and use --- effect of extra directory?
by japhy (Canon) on Nov 10, 2001 at 00:18 UTC
    I see a lot of people that modify the directory structure to be:
    Foo/ Bar/ Changes MANIFEST Makefile.PL t/ 1.t lib/ Foo/ Bar.pm
    In fact, there's probably a module tool that creates that structure. I know the h2xs-5.7.2 makes the t/ directory.

    _____________________________________________________
    Jeff[japhy]Pinyan: Perl, regex, and perl hacker.
    s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;