use List::Util qw( reduce ); my $token = pack 'NN', time, $employee_id; $token .= reduce { $a ^ $b } split //, $token;