in reply to System command not working

perl -ne 'print if $. >= 17 && $. <= 30' infile.txt > output.txt

That can be written more simply as:

perl -ne 'print if 17 .. 30' infile.txt > output.txt

The comparison to $. is done automatically.

Your program needs a while loop:

open INFILE, '<', $inFile or die "Can't open $inFile : $!"; open OUTFILE, '>', $outFile or die "Can't open $outFile : $!"; while ( <INFILE> ) { print OUTFILE if 17 .. 30; } close INFILE or die "can't close $inFile : $!"; close OUTFILE or die "can't close $outFile : $!";