Perl Programming/Keywords/printf

Previous: print Keywords Next: prototype

The printf keyword

edit

The printf function is equivalent to print FILEHANDLE sprintf(FORMAT, LIST). The only difference to print is that the output record separator, $\, is not appended. The parametres FORMAT and LIST are parsed as a single list, where fhe first argument is understood as the format information.

If the list is omitted, the contents of $_ is used as format information. To use the printf without a printf, a real filehandler like FH and not an indirect filehandler like $fh is required. In this case, if $_ contains formatting information, it will be replaced by an empty string and a warning will be emitted, if they are enabled. So, it's better to use print when the contents of $_ are to be used as formatting information.

print is simpler and less errorprone than printfǃ

Syntax

edit
  printf FILEHANDLE FORMAT, LIST
  printf FILEHANDLE
  printf FORMAT, LIST
  printf

Examples

edit
  The code
	$dotextension = ".pl";
	$filename = "assign" . $dotextension;
	$filename2 = "assign1" . $dotextension;
	print $filename . ", " . $filename2 . "\n";

	open(my $fh, "<", $filename) 
		or die "cannot open < " . $filename . ": $!";
	open(my $fh2, ">", $filename2) 
		or die "cannot open < " . $filename2 . ": $!";

	read $fh, $f, 1024;

	printf($fh2 "%s, ", $f);	# Writes contents into $filename2

	close($fh);
	close($fh2);
returns the contents of the file "assign.pl":
assign.pl, assign1.pl


See also

edit
Previous: print Keywords Next: prototype