my @table_data; for ( 0 .. $#iso ) { my %row_data = (); for my $file ( qw/viewer ppi/ ) { my $file_path = join( "_", "$root/$file", "$iso[$_].prc" ); last unless stat( $file_path ); $row_data{"LINK_$file"} = "\"$snapdir/$file_path\""; $row_data{"SIZE_$file"} = sprintf( "\"%s bytes\"", insert_commas( -s _ )); if ( $file eq 'viewer' ) { $row_data{"FILEDATE"} = strftime( "%D %r", localtime( $^T - ( -M _ * 3600 * 24 ))); $row_data{"TEXT_$file"} = sprintf( "%-12s", $lang[$_] ); } } push @table_data, { %row_data } if ( scalar( keys %row_data ) == 6 ); }