use Test::More; my @test = qw( /foo/bar.gif http://www.example.com/baz/quux/ http://www.example.com/foo/bar.gif foo/bar.gif http://www.example.com/baz/quux/ http://www.example.com/baz/quux/foo/bar.gif ../../bar.gif http://www.example.com/baz/quux/ http://www.example.com/bar.gif foo/bar.gif http://www.example.com/baz/quux http://www.example.com/baz/foo/bar.gif ../foo/bar.gif http://www.example.com/baz/quux http://www.example.com/foo/bar.gif ../../foo/bar.gif http://www.example.com/baz/quux/qux http://www.example.com/foo/bar.gif ); plan tests => @test / 3; do { is abs_url( $test[0], $test[1] ), $test[2]; splice @test, 0, 3 } while @test;