my ($session_id, $last_action_date, $last_action_time) = split /-/, $session; #### 0 1 2 3 4 5 6 7 8 9 #### # split: my @fields = split /-/, $session; die "Weird timestamp in >>$session<<" unless @fields == 5; my ($session_id) = $fields[0]; my ($last_action_date) = join "-", @fields[1,2,3]; my ($last_action_time) = $fields[4]; # unpack: my ($session_id,$last_action_date,$last_action_time) = unpack "A2xA10xA8", $session; # regex: $session =~ /^(\d{2})-(\d{4}-\d{2}-\d{2})-(\d\d:\d\d:\d\d)$/ or die "Weird timestamp in >>$session<<" my ($session_id,$last_action_date,$last_action_time) = ($1,$2,$3);