#!/usr/bin/perl use strict; use warnings; use Benchmark; use vars qw/$count @data $line/; $count = 1000000; @data = ( '10.177.178.83;gr-emattig-IP1;Edgar Mattig', '10.177.174.71;gr-akaraca-IP1;Adnan Karaca', '10.177.165.137 gr-skahlert-IP1 Stefan Kahlert', ); timethese( $count, { 'regex' => \&ME_regex, 'split' => \&ME_split, }); sub ME_regex { for $line ( @data ) { my ($val) = $line =~ m/-(.*?)-/; } } sub ME_split { for $line ( @data ) { my ($val) = (split(/-/, $line))[1]; } }