Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
AutoLoader(3)	      User Contributed Perl Documentation	 AutoLoader(3)

NAME
       PDL::AutoLoader - MatLab	style AutoLoader for PDL

SYNOPSIS
	use PDL::AutoLoader;
	$a = func1(...);   # Load file func1.pdl
	$b = func2(...);   # Load file func2.pdl

	$PDL::AutoLoader::Rescan = 1; #	Enable re-scanning

DESCRIPTION
       This module implements a	MatLab style AutoLoader	for PDL. If an unknown
       function	"func()" is called, PDL	looks for a file called	"func.pdl".
       If it finds one,	it compiles the	file and calls the function "func".

       The list	of directories to search in is given by	the shell environment
       variable	"PDLLIB". This is a colon-separated list of directories. On
       MSWindows systems, is it	a semicolon -separated list of directories.

       For example, in csh:

	 setenv	PDLLIB "/home/joe/pdllib:/local/pdllib"

       Note: This variable is unrelated	to Perl's "PERL5LIB".

       If you add a leading '+'	on a directory name, PDL will search the
       entire directory	tree below that	point. Internally, PDL stores the
       directory list in the variable @PDLLIB, which can be modified at	run
       time.

       For example, in csh:

	 setenv	PDLLIB "+/home/joe/PDL"

       will search /home/joe/PDL and all its subdirectories for	.pdl files.

   AUTO-SCANNING
       The variable $PDL::AutoLoader::Rescan controls whether files are
       automatically re-scanned	for changes at the "perldl" or "pdl2" command
       line.

       If "$PDL::AutoLoader::Rescan == 1" and the file is changed then the new
       definition is reloaded auto-matically before executing the "perldl" or
       "pdl2" command line. Which means	in practice you	can edit files,	save
       changes and have	"perldl" or "pdl2" see the changes automatically.

       The default is '0' - i.e. to have this feature disabled.

       As this feature is only pertinent to the	PDL shell it imposes no
       overhead	on PDL scripts.	Yes Bob	you can	have your cake and eat it too!

       Note: files are only re-evaled if they are determined to	have been
       changed according to their date/time stamp.

       No doubt	this interface could be	improved upon some more. :-)

   Sample file:
	sub foo	{ # file 'foo.pdl' - define the	'foo' function
	  my $x=shift;
	  return sqrt($x**2 + $x**3 + 2);
	}
	1; # File returns true (i.e. loaded successfully)

AUTHOR
       Copyright(C) 1997 Karl Glazebrook (kgb@aaoepp.aao.gov.au); several
       extensions by Craig DeForest (deforest@boulder.swri.edu)	All rights
       reserved. There is no warranty. You are allowed to redistribute this
       software	/ documentation	under certain conditions. For details, see the
       file COPYING in the PDL distribution. If	this file is separated from
       the PDL distribution, the copyright notice should be included in	the
       file.

BUGS
       No doubt	this interface could be	improved upon some more. :-)

       Will probably be	quite slow if "$PDL::AutoLoader::Rescan	== 1" and
       thousands of functions have been	autoloaded.

       There could be a	race condition in which	the file changes while the
       internal	autoloader code	is being executed but it should	be harmless.

       Probably	has not	been tested enough!

SEE ALSO
       For an alternative approach to managing a personal collaction of
       modules and functions, see local::lib.

   PDL::AutoLoader::expand_path
       Expand a	compactified path into a dir list

       You supply a pathlist and leading '+' and '~' characters	get expanded
       into full directories.  Normally	you don't want to use this -- it's
       internal	to the autoloader -- but some utilities, like the online
       documentation searcher, need to be able to use it.

perl v5.32.1			  2018-05-05			 AutoLoader(3)

NAME | SYNOPSIS | DESCRIPTION | AUTHOR | BUGS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=PDL::AutoLoader&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help