seems to work for me, maybe it's because f{3} expects a float. although I get a different error message:
Value "op1" invalid for option arg1 (real number expected)
maybe diff versions with different error messages?
~ $ cat test.pl
#!/usr/bin/perl
use Getopt::Long;
GetOptions('arg1=s{3}' => \@a);
print "arg: $_\n" foreach(@a);
~ $ perl test.pl --arg1 op1 op2 op3
arg: op1
arg: op2
arg: op3
~ $ cpan -l 2>/dev/null | grep Getopt
Getopt::Long 2.38
Getopt::Std 1.06
anyway I'd try out that exact code and see if it works, if not idk.