The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl -w
use strict;
use warnings;
use Carp       qw( croak   );
use Test::More qw( no_plan );
use File::Spec;

use MP3::M3U::Parser;

my $file = '06_sub_search.html';

unlink $file if -e $file;

my $parser = MyParser->new(
                -search => 'fred mer'
            );

$parser->parse(
    File::Spec->catfile( qw/ t data test.m3u / )
);

$parser->export(
    -format    => 'html',
    -file      => $file,
    -overwrite => 1,
);

ok(1, 'Some test');

package MyParser;
use base qw( MP3::M3U::Parser );

sub _search { ## no critic (ProhibitUnusedPrivateSubroutines)
    my $self   = shift;
    my $path   = shift;
    my $id3    = shift;
    my $search = $self->{search_string};
    return 0 if ! $id3 && ! $path;
    my @search = split m{ \s+ }xms, $search;
    my %c      = (id3 => 0, path => 0);
    foreach my $s ( @search ) {
        $c{id3 }++ if $id3  =~ m{$s}xmsi;
        $c{path}++ if $path =~ m{$s}xmsi;
    }
    return 1 if $c{id3} == @search || $c{path} == @search;
    return 0;
}