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

FreeBSD Manual Pages

  
 
  

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

NAME
       true - automatically return a true value	when a file is required

SYNOPSIS
	 package Contemporary::Perl;

	 use strict;
	 use warnings;
	 use true;

	 sub import {
	     strict->import();
	     warnings->import();
	     true->import();
	 }

DESCRIPTION
       Perl's "require"	builtin	(and its "use" wrapper)	requires the files it
       loads to	return a true value.  This is usually accomplished by placing
       a single

	   1;

       statement at the	end of included	scripts	or modules. It's not onerous
       to add but it's a speed bump on the Perl	novice's road to
       enlightenment. In addition, it appears to be a non-sequitur to the
       uninitiated, leading some to attempt to mitigate	its appearance with a
       comment:

	   1; #	keep require happy

       or:

	   1; #	Do not remove this line

       or even:

	   1; #	Must end with this, because Perl is bogus.

       This module packages this "return true" behaviour so that it need not
       be written explicitly.  It can be used directly,	but it is intended to
       be invoked from the "import" method of a	Modern::Perl-style module that
       enables modern Perl features and	conveniences and cleans	up legacy Perl
       warts.

   METHODS
       "true" is file-scoped rather than lexically-scoped. Importing it
       anywhere	in a file (e.g.	at the top-level or in a nested	scope) causes
       that file to return true, and unimporting it anywhere in	a file
       restores	the default behaviour. Redundant imports/unimports are
       ignored.

       import

       Enable the "automatically return	true" behaviour	for the	currently-
       compiling file. This should typically be	invoked	from the "import"
       method of a module that loads "true". Code that uses this module	solely
       on behalf of its	callers	can load "true"	without	importing it e.g.

	   use true ();	# don't	import

	   sub import {
	       true->import();
	   }

	   1;

       But there's nothing stopping a wrapper module also importing "true" to
       obviate its own need to explicitly return a true	value:

	   use true; # both load and import it

	   sub import {
	       true->import();
	   }

	   # no	need to	return true

       unimport

       Disable the "automatically return true" behaviour for the currently-
       compiling file.

   EXPORT
       None by default.

NOTES
       Because some versions of	YAML::XS may interpret the key of "true" as a
       boolean,	you may	have trouble declaring a dependency on true.pm.	 You
       can work	around this by declaring a dependency on the package
       true::VERSION, which has	the same version as true.pm.

SEE ALSO
       o   latest

       o   Modern::Perl

       o   nonsense

       o   perl5i

       o   Toolkit

       o   uni::perl

AUTHOR
       chocolateboy, <chocolate@cpan.org>

COPYRIGHT AND LICENSE
       Copyright (C) 2010-2011 by chocolateboy

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself, either Perl	version	5.10.0 or, at
       your option, any	later version of Perl 5	you may	have available.

perl v5.24.1			  2011-04-18			       true(3)

NAME | SYNOPSIS | DESCRIPTION | NOTES | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE

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

home | help