sub get_random_line { my $filename = shift; open my $fh, '<', $filename or die "Cannot read '$filename': $!\n"; return random_line( $fh ); } my $filename; if (my $cut =~ /[a-e]/i) { $filename = 'infinity01.txt' } elsif ( ... ) { ... } my $random_line = get_random_line( $filename );