このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/php/1168450843/431
#  失礼します 
#  使用言語はperl5です 
#   
#  配列に、前からマッチしたところまでの文字列を繰り返し入れようとしています 
#  ($str = 'hogehugahage'; 
#  という文字列があって、hでマッチさせたら 
#  @data = ['h', 'hogeh', 'hogehugah'] 
#  という配列になることを想定しています) 
#   
#  @data = $str =~ m/h/g; 
#  のときは予想どおり 
#  @data = ['h', 'h', 'h'] 
#  となったのですが、 
#  @data = $str =~ m/^.*h/g 
#  の場合は 
#  @data = ['hogehugah'] 
#  となって1回最大マッチするだけのようです 
#   
#  どうすれば予想通りの結果になるでしょうか? 
# 

'配列に、前からマッチしたところまでの文字列を繰り返し入れようとしています($str = ''hogehugahage'';という文字列があって、hでマッチさせたら@data = [''h'', ''hogeh'', ''hogehugah'']という配列になる'(_検索文字列,_文字列,_先頭から検索文字列までの文字列ならび) :-
        findall(_先頭から適合文字列まで文字列,
                    '前からマッチしたところまでの文字列ならび'(_検索文字列,_文字列,_先頭か適合文字列までの文字列),
                _先頭から適合文字列までの文字列ならび).

'前からマッチしたところまでの文字列ならび'(_検索文字列,_文字列,_適合文字列) :-
        sub_atom(_文字列,_,_,_,S1,_検索文字列,S3,L1,L2,L3),
        concat_atom([S1,_検索文字列],_適合文字列).