1、5) Input and Output Ma- Webster IMBIM, BMC ma-hew.webster@imbim.uu.se reading from •standard input = the keyboard •standard output = the screen –can be redirected to a file using > in unixwhile($line=){!!print"youtyped$line";!}!!or !while(){!!print"youtyped$_";!}!reading f
2、rom •an important difference while(){}!# will read from standard input one line at a Nme !foreach(){}!# will read everything from standard input before looping # not a good idea to use this... !reading from <> •the diamond operator •can be used to make programs that proces
3、s files like unixcommands •e.g. on the command line you could type ./perl_script.plmy_file.txt!my_file.txtcould accessed fromperl_script.pl!using while(<>){}!!but it is oPen be-er to use a filehandle (see later) @ARGV •it is common to run programs with invocaNon arguments •these are just values
4、 coming aPer the program name. e.g. ./perl_script.pl-s-v500!the values are place in @ARGV $arg1=shift@ARGV;!# $arg1 contains ‐s $arg2=shift@ARGV;!# $arg2 contains –v $arg3=shift@ARGV;!# $arg3 contains 500 output to standard output print@array; # no interpolaNon is not the same as print"@arra
5、y"; # interpolaNon print@array prints the list with no spaces between print"@array" performs interpolaNon •STDOUT is normally the screen, it is redirected in unix with >!•if you print to STDERR (standard error), it will not be redirected by >!printf!•can be used to format output •most usefu
6、l to print numbers with decimal places printf"piisabout%d",3.1415126;!piisabout3!!print"5millionis%e",5000000!5millionis5e+6!!printf"piiscloserto%f1.2",3.1415126;!piiscloserto3.14!!•a code is placed in the string to format the values coming aPer printf!Format Result %% A percent sign %s
7、 A string %d A signed integer (decimal) A floaNng point number %e (scienNfic notaNon) A floaNng point number (fixed %f decimal notaNon) A floaNng point number (%e %g or %f notaNon according to value size) Filehandles•Very useful for reading