Hi, I have the script below which outputs some values in a "tabular" form into the body of a mail. I'm using the format utility in PERL to output the values in a tabular form as in:
PROG NO VERSION PROTOCOL PORT SERVICE RESPONSE ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ----- 10666567 1.1 tcp 5676 walld 10666567 program is not available. However, it produced the errors below: [EMAIL PROTECTED] file-5.pl names Format not terminated at file-5.pl line 97, at end of line Format not terminated at file-5.pl line 97, at end of line Missing right bracket at file-5.pl line 97, at end of line syntax error at file-5.pl line 97, at EOF Execution of file-5.pl aborted due to compilation errors. Below is my script which reads the file containing the output of the rpcinfo UNIX utility, as in: program vers proto port service response 100008 1 udp 55734 walld program 100008 version 1 ready and waiting 1073741824 1 udp 661 program 1073741824 version 1 is not available 1073741825 1 udp 899 program 1073741825 version 1 is not available and mails to sys-admins whenever the program response is NOT "ready and waiting". The problem scenario is similar my earlier posting. However, I'm now wanting to include the formatting utility in PERL to better format my outputs. Below is my script which produced the ERROR output above: open(INPUT, "$file") || die "Can't open $file \n"; open(NAMES, "$nameList") || die "Can't open $nameList \n"; @names=<NAMES>; $list=""; for($i=0;$i<@names;$i++){ chomp($names[$i]); print "\$names[$i]=$names[$i] \n"; $list=$list." "."$names[$i]".$domain; } my @data = grep{/^\d/ && !/(ready and waiting)$/ && !/^RPC/ && !/^program/} map {chomp; $_}$ if(@data==0){ print "No error rows found\n"; exit 1; } else{ print MAIL "SUBJECT: RPCPING OUTPUT \n"; print MAIL "HOST :$hostName\n"; print MAIL "IP :$ip\n"; print MAIL "OS :$^O \n"; foreach(@data){ print "ELEMENTS: $_ \n"; my @field=split(/:?\s+/,$_,6); ##break it up into 6 fields format STDOUT_TOP = MAIL PROG NO VERSION PROTO PORT SERVICE RESPONSE ---------------------------------------------------------------------------- ---------------------------------- . shift @field unless $field[0]; $progNo = $field[0]; $version = $field[1]; $protocol = $field[2]; $port = $field[3]; $service = $field[4]; $response =$field[5]; write(); format STDOUT = @<<<< @#.###### @<<<<<< @<<<<<< @#.###### @<<<<<< @<<<<<<<<<<<<<<<<<<<< $progNo, $version, $protocol, $port, $service, $response . } } close(MAIL); Could anyone help me out by showing me where did I go wrong and how do I resolve it? I'm still new in using the format utilty. PS: Kindly excuse me as I'm not practicing good perl programming practices by doing a "use strict" and having my variables defined as my or local. My priority is get a working model of this script. Thanks -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]