Re: goto???
- From: krahnj@xxxxxxxxx (John W. Krahn)
- Date: Fri, 27 Oct 2006 15:56:23 -0700
Shiping Wang wrote:
Hello,
Hello,
I try to use following code to check if a file is already exist,
if it exists, then ask user to change file name or override it. I know
using 'goto' is not preferred way here, but what's the 'right way' to do
so?
-------------------------------------------------------------------------------------------------------------------------------------------
my $file = "sumpower\.txt";
if (-e $file ){
warn "The summary file already exist! Wold you like to give
another name? (y/n)\n".
"If your answer is 'n' then the file will be overrided.
What's your decision?\n";
STARTOVER:
my $answer = <STDIN>;
if ($answer =~ /y/i){
print "What's the new file name?\n";
$file = <STDIN>;
}elsif ($answer =~ /n/i){
unlink $file;
}else {
print "You have given a invalid answer, try again
(y/n)\n";
goto STARTOVER;
}
}
open(OUT, "> $file") or die "Cannot open $file - $!";
How about this:
my $file = 'sumpower.txt';
STARTOVER:
while ( -e $file ) {
warn "The summary file already exists! ",
"Would you like to give it another name? (y/n)\n",
"If your answer is 'n' then the file will be overwritten. ",
"What's your decision?\n";
ANSWER:
{ my $answer = <STDIN>;
if ( $answer =~ /^y/i ) {
print "What's the new file name?\n";
chomp( $file = <STDIN> );
next STARTOVER;
}
elsif ( $answer =~ /^n/i ) {
# unlink not required as open will overwrite the file.
last STARTOVER;
}
else {
print "You have given a invalid answer, try again (y/n)\n";
redo ANSWER;
}
}
}
open OUT, '>', $file or die "Cannot open $file - $!";
John
--
Perl isn't a toolbox, but a small machine shop where you can special-order
certain sorts of tools at low cost and in short order. -- Larry Wall
.
- References:
- ndbm error no 28
- From: C . R .
- Re: ndbm error no 28
- From: Mumia W.
- goto???
- From: Shiping Wang
- ndbm error no 28
- Prev by Date: goto???
- Next by Date: Re: How to pass string in command line argument.
- Previous by thread: goto???
- Next by thread: Re: goto???
- Index(es):
Relevant Pages
|