/asd/gs
 ↓
/(asd)/gs


あとついでに書き直した。

sub1(qq(asdasdqwdasdasd));
sub sub1{
 my $str = shift || '';
 while($str =~ /(asd)/gs){
  print $1;
 }
}

慣れてくれば良いけど、初心者であるうちは $_ をそのまま使わずに関数内で変数を用意して
そこへ格納したほうがいいよ。