Plack::Util man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Plack::Util(3)	      User Contributed Perl Documentation	Plack::Util(3)

NAME
       Plack::Util - Utility subroutines for Plack server and framework
       developers

FUNCTIONS
       TRUE, FALSE
	     my $true  = Plack::Util::TRUE;
	     my $false = Plack::Util::FALSE;

	   Utility constants to include when you specify boolean variables in
	   $env hash (e.g. "psgi.multithread").

       load_class
	     my $class = Plack::Util::load_class($class [, $prefix ]);

	   Constructs a class name and "require" the class. Throws an
	   exception if the .pm file for the class is not found, just with the
	   built-in "require".

	   If $prefix is set, the class name is prepended to the $class unless
	   $class begins with "+" sign, which means the class name is already
	   fully qualified.

	     my $class = Plack::Util::load_class("Foo");		   # Foo
	     my $class = Plack::Util::load_class("Baz", "Foo::Bar");	   # Foo::Bar::Baz
	     my $class = Plack::Util::load_class("+XYZ::ZZZ", "Foo::Bar"); # XYZ::ZZZ

	   Note that this function doesn't validate (or "sanitize") the passed
	   string, hence if you pass a user input to this function (which is
	   an insecure thing to do in the first place) it might lead to
	   unexpected behavior of loading files outside your @INC path. If you
	   want a generic module loading function, you should check out CPAN
	   modules such as Module::Runtime.

       is_real_fh
	     if ( Plack::Util::is_real_fh($fh) ) { }

	   returns true if a given $fh is a real file handle that has a file
	   descriptor. It returns false if $fh is PerlIO handle that is not
	   really related to the underlying file etc.

       content_length
	     my $cl = Plack::Util::content_length($body);

	   Returns the length of content from body if it can be calculated. If
	   $body is an array ref it's a sum of length of each chunk, if $body
	   is a real filehandle it's a remaining size of the filehandle,
	   otherwise returns undef.

       set_io_path
	     Plack::Util::set_io_path($fh, "/path/to/foobar.txt");

	   Sets the (absolute) file path to $fh filehandle object, so you can
	   call "$fh->path" on it. As a side effect $fh is blessed to an
	   internal package but it can still be treated as a normal file
	   handle.

	   This module doesn't normalize or absolutize the given path, and is
	   intended to be used from Server or Middleware implementations. See
	   also IO::File::WithPath.

       foreach
	     Plack::Util::foreach($body, $cb);

	   Iterate through $body which is an array reference or
	   IO::Handle-like object and pass each line (which is NOT really
	   guaranteed to be a line) to the callback function.

	   It internally sets the buffer length $/ to 65536 in case it reads
	   the binary file, unless otherwise set in the caller's code.

       load_psgi
	     my $app = Plack::Util::load_psgi $psgi_file_or_class;

	   Load "app.psgi" file or a class name (like "MyApp::PSGI") and
	   require the file to get PSGI application handler. If the file can't
	   be loaded (e.g. file doesn't exist or has a perl syntax error), it
	   will throw an exception.

	   Security: If you give this function a class name or module name
	   that is loadable from your system, it will load the module. This
	   could lead to a security hole:

	     my $psgi = ...; # user-input: consider "Moose.pm"
	     $app = Plack::Util::load_psgi($psgi); # this does 'require "Moose.pm"'!

	   Generally speaking, passing an external input to this function is
	   considered very insecure. But if you really want to do that, be
	   sure to validate the argument passed to this function. Also, if you
	   do not want to accept an arbitrary class name but only load from a
	   file path, make sure that the argument $psgi_file_or_class begins
	   with "/" so that Perl's built-in do function won't search the
	   include path.

       run_app
	     my $res = Plack::Util::run_app $app, $env;

	   Runs the $app by wrapping errors with eval and if an error is
	   found, logs it to "$env->{'psgi.errors'}" and returns the template
	   500 Error response.

       header_get, header_exists, header_set, header_push, header_remove
	     my $hdrs = [ 'Content-Type' => 'text/plain' ];

	     my $v = Plack::Util::header_get($hdrs, $key); # First found only
	     my @v = Plack::Util::header_get($hdrs, $key);
	     my $bool = Plack::Util::header_exists($hdrs, $key);
	     Plack::Util::header_set($hdrs, $key, $val);   # overwrites existent header
	     Plack::Util::header_push($hdrs, $key, $val);
	     Plack::Util::header_remove($hdrs, $key);

	   Utility functions to manipulate PSGI response headers array
	   reference. The methods that read existent header value handles
	   header name as case insensitive.

	     my $hdrs = [ 'Content-Type' => 'text/plain' ];
	     my $v = Plack::Util::header_get($hdrs, 'content-type'); # 'text/plain'

       headers
	     my $headers = [ 'Content-Type' => 'text/plain' ];

	     my $h = Plack::Util::headers($headers);
	     $h->get($key);
	     if ($h->exists($key)) { ... }
	     $h->set($key => $val);
	     $h->push($key => $val);
	     $h->remove($key);
	     $h->headers; # same reference as $headers

	   Given a header array reference, returns a convenient object that
	   has an instance methods to access "header_*" functions with an OO
	   interface. The object holds a reference to the original given
	   $headers argument and updates the reference accordingly when called
	   write methods like "set", "push" or "remove". It also has "headers"
	   method that would return the same reference.

       status_with_no_entity_body
	     if (status_with_no_entity_body($res->[0])) { }

	   Returns true if the given status code doesn't have any Entity body
	   in HTTP response, i.e. it's 100, 101, 204 or 304.

       inline_object
	     my $o = Plack::Util::inline_object(
		 write => sub { $h->push_write(@_) },
		 close => sub { $h->push_shutdown },
	     );
	     $o->write(@stuff);
	     $o->close;

	   Creates an instant object that can react to methods passed in the
	   constructor. Handy to create when you need to create an IO stream
	   object for input or errors.

       encode_html
	     my $encoded_string = Plack::Util::encode( $string );

	   Entity encodes "<", ">", "&", """ and "'" in the input string and
	   returns it.

       response_cb
	   See "RESPONSE CALLBACK" in Plack::Middleware for details.

perl v5.14.2			  2012-08-13			Plack::Util(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net