in reply to Press enter to exit

A quick tip to improve the legibility of your code is to avoid doing this:

if ($fi eq "\n") { exit; } else { # some other code here }

There is no need for the else when the first branch terminates, so you can just write

if ($fi eq "\n") { exit; } # some other code here

This applies for any terminating action just as exit, die, croak, return, etc. I find that it especially adds clarity if you have several such branches in succession.

Replies are listed 'Best First'.
Re^2: Press enter to exit
by 2teez (Vicar) on Jul 27, 2013 at 09:45 UTC

    if ($fi eq "\n") ## WRONG in this case { exit; }
    The value of the variable $fi is not "\n" but an empty string, though in the script provided by the OP, if ($fi eq "\n") { .. still works. Note that "chomp", already removes "\n".
    A simple test, shows this clearly like thus:
    use warnings; use strict; use Test::More 'no_plan'; print "Please press enter to quit \n"; my $fi = <STDIN>; chomp $fi; is $fi, "\n",'should fail'; if ( $fi eq "\n" ) { exit; }
    result shows this:
    Please press enter to quit not ok 1 - should fail # Failed test 'should fail' # at textme.pl line 9. # got: '' # expected: ' # ' 1..1 # Looks like you failed 1 test of 1.
    If you look at the got and expected in the above, you get the point.

    If you tell me, I'll forget.
    If you show me, I'll remember.
    if you involve me, I'll understand.
    --- Author unknown to me