in reply to string containing characters
Here's a couple more while awaiting a ruling on duplicates...
#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11163777 use warnings; my @wanted = (1, 2, 3, 4, 2); my $pattern = join '.*', map quotemeta, sort @wanted; for my $test ('1432', '21432', '1345', 'brown fox', '98276?54321') { printf "%20s => %s\n", $test, (join '', sort split //, $test) =~ /$pattern/s ? "has all" : "does not have all"; } print "\n"; sub hasall # similar to what I did in https://perlmonks.org/?node_id=1 +1108516 { my ($have, @want) = @_; $have =~ s/\Q$_// or return 0 for @want; return 1; } for my $test ('1432', '21432', '1345', 'brown fox', '98276?54321') { printf "%20s => %s\n", $test, hasall( $test, @wanted ) ? "has all" : "does not have all"; }
Outputs:
1432 => does not have all 21432 => has all 1345 => does not have all brown fox => does not have all 98276?54321 => has all 1432 => does not have all 21432 => has all 1345 => does not have all brown fox => does not have all 98276?54321 => has all
|
|---|