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

FreeBSD Manual Pages

  
 
  

home | help
Perl6::Say(3)	      User Contributed Perl Documentation	 Perl6::Say(3)

NAME
       Perl6::Say - "print()", but no newline needed

SYNOPSIS
	   # Perl 5 code...

	   use Perl6::Say;

	   say 'boo';		  # same as:  print 'boo', "\n"

	   say STDERR 'boo';	  # same as:  print STDERR 'boo', "\n"

	   STDERR->say('boo');	  # same as:  print STDERR 'boo', \n"

	   $fh->say('boo');	  # same as:  print $fh	'boo', "\n";

	   say();		  # same as:  print "$_\n";

	   say undef;		  # same as:  print "\n";

DESCRIPTION
   Note	for Users of Perl 5.10
       You don't need this module.  The	Perl 6 "say" function is available in
       Perl 5.10 by saying "use	feature	'say';".  Hence, this module is	of
       interest	only to	users of Perl 5.6 and 5.8.

       If you have Perl	5.10 installed,	see the	510/ directory in this
       distribution for	some elementary	examples of "say" taken	from "perldoc
       feature".

   General
       Implements a close simulation of	the "say" function in Perl 6, which
       acts like "print" but automatically appends a newline.

       Use it just like	"print"	(except	that it	only supports the indirect
       object syntax when the stream is	a bareword). That is, assuming the
       relevant	filehandles are	open for output, you can use any of these:

	   say @data;
	   say FH @data;
	   FH->say(@data);
	   *FH->say(@data);
	   (\*FH)->say(@data);
	   say $fh, @data;
	   $fh->say(@data);

       but not any of these:

	   say {FH} @data;
	   say {*FH} @data;
	   say {\*FH} @data;
	   say $fh @data;
	   say {$fh} @data;

   Additional Permitted	Usages
       As demonstrated in the test suite accompanying this distribution,
       "Perl6::Say::say()" can be used in all the following situations.

	   $string = q{};
	   open	FH, ">", \$string;
	   say FH qq{Hello World};	      #	print to a string
	   close FH;			      #	requires Perl 5.8.0 or later

	   use FileHandle;
	   $fh = FileHandle->new($file,	'w');
	   if (defined $fh) {
	       say $fh,	qq{Hello World};
	       $fh->close;
	   }

	   use IO::File;
	   $fh = IO::File->new($file, 'w');
	   if (defined $fh) {
	       say $fh,	qq{Hello World};
	       $fh->close;
	   }

	   $string = q{};
	   open	FH, ">", \$string;	       # requires Perl 5.8.0 or	later
	   select(FH);
	   say qq{Hello	World};
	   close FH;

   Interaction with Output Record Separator
       In Perl 6, "sayA	@stuff"	is exactly equivalent to
       "Core::printA @stuff,A "\n"".

       That means that a call to "say" appends any output record separator
       (ORS) after the added newline (though in	Perl 6,	the ORS	is an
       attribute of the	filehandle being used, rather than a global $/
       variable).

   "IO::Handle::say()"
       IO::Handle version 1.27 or later	(which,	confusingly, is	found in IO
       distribution 1.23 and later) also implements a "say" method.
       Perl6::Say provides its own "say" method	to IO::Handle if
       "IO::Handle::say" is not	available.

   Usage with Older Perls
       As noted	above, some aspects of "Perl6::Say::say()" will	not work with
       versions	of Perl	earlier	than 5.8.0.  This is not due to	any problem
       with this module; it is simply that Perl	did not	support	printing to an
       in-memory file ("print \$string,	"\n";")	prior to that point.  (Thanks
       to a CPAN testers report	from David Cantrell for	identifying this
       limitation.)

WARNING
       The syntax and semantics	of Perl	6 is still being finalized and
       consequently is at any time subject to change. That means the same
       caveat applies to this module.

DEPENDENCIES
       No dependencies other than on modules included with the Perl core as of
       version 5.8.0.

       Some of the files in the	test suite accompanying	this distribution use
       non-core	CPAN module IO::Capture::Stdout.  Tests	calling
       IO::Capture::Stdout methods are enclosed	in "SKIP" blocks and so	should
       pose no obstacle	to installation	of the distribution on systems lacking
       IO::Capture.  (However, the maintainer strongly recommends IO::Capture
       for developers who write	a lot of test code.  So	please consider
       installing it!)

AUTHOR and MAINTAINER
   AUTHOR
       Damian Conway (damian@conway.org).

   MAINTAINER
       Alexandr	Ciornii	(alexchorny@gmail.com)

ACKNOWLEDGMENTS
       Thanks to Damian	Conway for dreaming this up.  Thanks to	David A	Golden
       for a close review of the documentation.	 Thanks	to CPAN	tester Jost
       Krieger for reporting an	error in my SKIP block count in	one test file.

BUGS AND IRRITATIONS
       As far as we can	determine, Perl	5 doesn't allow	us to create a
       subroutine that truly acts like "print".	That is, one that can
       simultaneously be used like so:

	   say @data;

       and like	so:

	   say {$fh} @data;

       Comments, suggestions, and patches welcome.

COPYRIGHT
       Copyright (c) 2004, Damian Conway. All Rights Reserved.	This module is
       free software. It may be	used, redistributed and/or modified under the
       same terms as Perl itself.

perl v5.24.1			  2010-07-14			 Perl6::Say(3)

NAME | SYNOPSIS | DESCRIPTION | WARNING | DEPENDENCIES | AUTHOR and MAINTAINER | ACKNOWLEDGMENTS | BUGS AND IRRITATIONS | COPYRIGHT

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

home | help