I have a text file of the following format:

```
1 4730 1031782 init
4 0 6 events
2190 450 0 top
21413 5928 1 sshd
22355 1970 2009 find 

```

I want to print rows of this file only if the second column of data meets the requirement `>= 2000` - how can I do this?

Currently I am reading the file and printing it like so:

```
sub read_file{
  my $data_failed = 1;
  my $file = 'task_file';
  if(open (my $file, "task_file" || die "$!\n")){
    my @COLUMNS = qw( memory cpu program );
    my %sort_strings = ( program => sub { $a cmp $b } );

    my (%process_details, %sort);

    while (<$file>) {
      $data_failed = 0;
      my ($process_id, $memory_size, $cpu_time, $program_name) = split;
      $process_details{$process_id} = { memory  => $memory_size,
                                        cpu     => $cpu_time,
                                        program => $program_name };
      undef $sort{memory}{$memory_size}{$process_id};
      undef $sort{cpu}{$cpu_time}{$process_id};
      undef $sort{program}{$program_name}{$process_id};
    }

    if($option_a == 1){
    if (-z $file){print "No tasks found\n";}
    for my $column ($COLUMNS[2]) {
      my $cmp = $sort_strings{$column} || sub { $a <=> $b };
      for my $value (sort $cmp keys %{ $sort{$column} }
      ) {
          my @pids = keys %{ $sort{$column}{$value} };
          say join ' ', $_, @{ $process_details{$_} }{@COLUMNS}
              for @pids;
        }
      }
    }
  } else { print "No tasks found\n"}
}

```

The `if($option_a == 1)` bit is just reading values from another function that parses command line options.