#!/usr/bin/perl use strict; use warnings; my @ids = qw/1 3 4 12 41 43 44 55 67 78 103 156 167 176 198 244 300 345 355/; my $id = 4; my $prev_id = 'undef'; my $next_id = 'undef'; if($id>=$ids[0] && $id<=$ids[-1]) { my $abstand=($ids[-1]-$ids[0])/scalar(@ids); my $pos=int($id/$abstand); if($ids[$pos]<$id) { $pos+=1 while($id>$ids[$pos]); } elsif($ids[$pos]>$id) { $pos-=1 while($id<$ids[$pos]); } if($id==$ids[$pos]) { $prev_id =$ids[$pos-1] if($pos-1>=0); $next_id =$ids[$pos+1]if($pos+1<=$#ids); } } print "VOR ID: $prev_id\n"; print " ID: $id\n"; print "NACH ID: $next_id\n";