#!/usr/bin/perl -w use strict; use warnings; use Test::More 'no_plan'; use Method::Signatures::Parser; my %tests = ( '$foo' => ['$foo'], '$foo, $bar' => ['$foo', '$bar'], ':$foo, $bar?' => [':$foo', '$bar?'], '' => [], '$sum = 2+2, $div = 2/2' => ['$sum = 2+2', '$div = 2/2'], '$foo = "Hello, world!"' => ['$foo = "Hello, world!"'], '@args = (1,2,3)' => ['@args = (1,2,3)'], '$foo = [1,2,3], $bar = { this => 23, that => 42 }' => [ '$foo = [1,2,3]', '$bar = { this => 23, that => 42 }' ], '$code = sub { my $bar = 2+2; }, :$this' => ['$code = sub { my $bar = 2+2; }', ':$this'], q[ $num = 42, $string = q[Hello, world!], $hash = { this => 42, that => 23 }, $code = sub { $num + 4 }, @nums = (1,2,3) ] => [ '$num = 42', '$string = q[Hello, world!]', '$hash = { this => 42, that => 23 }', '$code = sub { $num + 4 }', '@nums = (1,2,3)' ], ); while(my($args, $expect) = each %tests) { is_deeply [split_proto($args)], $expect, "split_proto($args)"; }