Bom vamos lá, primeiro para comparar strings não usamos o operador "==". Depois, após a pessoa digitar "sair", terá um "\n" nova linha na string. Então $c eq "sair" nunca será verdadeiro. Para isso você precisará usar a função chomp() que retira o "\n" do final da string. Aqui segue um programa que eu escrevi rápido sem testar, #!/usr/bin/perl
use strict;
use warnings;
sub abrir {
my $x = shift;
open my $fh, '>', $x or die $!;
while ( my $line = <$fh> ) {
print $line;
}
return 1;
}
{
while (1) {
chomp(my $a = <STDIN>);
if ( $a eq 'sair' ) {
print "Você está saindo do programa";
last;
}
else {
if ( -e $a ) {
print "Você está abrindo o arquivo: $a";
abrir($a);
}
else {
print "O arquivo: $a não existe\n";
}
}
}
}