in reply to Re: Re: print format
in thread print format

Use a temporary variable. Set it to the value to print before entering the loop. After the first print in the loop, set it to an empty string. This assumes that the loop will produce at least one line of output.

my ($print_accession) = sprintf("%08s",$accession); foreach (@accession) { ... $item1=...; $item2=...; printf("%8s%16s%8s\n",$print_accession,$item1,$item2); $print_accession = ""; }

If you don't like your strings right aligned in their field, use '%-16s' - the minus indicates the field should be left aligned. See perldoc -f sprintf for details on the available formats.

90% of every Perl application is already written.