#!/usr/bin/perl use strict; use warnings; use Tie::File; my $id_from_form=5; my $move="up"; my $flat_file = './flat.file'; tie my @array, 'Tie::File',$flat_file or die $!; chomp @array; my ($index) = grep{$array[$_] =~ /^$id_from_form\*\*/}(0..$#array); print $index,"\n"; if($move eq 'up'){ my $elem = $array[$index]; $array[$index] = $array[$index-1]; $array[$index-1] = $elem; } else{ my $elem = $array[$index]; $array[$index] = $array[$index+1]; $array[$index+1] = $elem; } $_ . "\n" for @array; untie @array;