2010-03-06 6 views
2

Dans mon sms script je lis dans le texte à envoyer avec ce sous-programme:Qu'est-ce qu'un bon moyen de lire le texte?

my $input = input("Enter the input: "); 

sub input { 
    my $arg = shift; 
    print $arg if $arg; 
    print "\n "; 
    chomp(my $in = <>); 
    return $in; 
} 

De cette façon, je peux corriger les erreurs que par l'annulation jusqu'à ce que je tends l'erreur et ce uniquement dans la dernière ligne. Existe-t-il un meilleur moyen de lire mon texte?

+0

-1 Vous avez lu une seule ligne d'entrée. Il n'y a aucune tentative pour détecter et/ou corriger les erreurs dans le code que vous avez posté. –

+0

Je pensais qu'il y aurait un module. J'ai écrit maintenant une routine validate_input mais peut-être que j'aime plus un "system ('vim', $ tempfile)/read dans $ tempfile. –

Répondre

2

C'est la façon "normale" pour lire l'entrée:

use strict; 
use warnings; 

# ... 

while (my $input = <>) 
{ 
    chomp $input; 
    handle_error($input), next unless validate($input); 

    # do something else with $input...  

} 
1

Vous pouvez utiliser une boucle while dans votre sous-programme input, par ex.

my $is_valid = 0; 
my $input; 

while (!$is_valid) { 
    print "Enter something: "; 
    $input = <>; 
    $is_valid = validate_input($input); 
}  
Questions connexes