my $re = new Regexp($pattern);
my $value = $re->substitute($value, replacement, $flags);
####
package Regex;
use strict;
use warnings;
sub new {
my ($class, $pattern, $flags) = @_;
my $flag_part = defined $flags ? "(?$flags)" : '';
my $re_part = "\Q$pattern";
return bless qr{$flag_part$re_part}, $class;
}
sub match {
my ($self, $str) = @_;
return $str =~ $self ? 'YES' : 'NO';
}
sub replace {
my ($self, $str, $new) = @_;
$str =~ s/$self/$new/;
return $str;
}
1;
##
##
#!/usr/bin/env perl
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/../lib";
use Regex;
my $pat = 'b';
my $case_sens_re_obj = Regex::->new($pat);
my $case_insens_re_obj = Regex::->new($pat, 'i');
my $test_string = 'ABC';
print 'case_sens_re_obj match: ',
$case_sens_re_obj->match($test_string), "\n";
print 'case_insens_re_obj match: ',
$case_insens_re_obj->match($test_string), "\n";
print 'case_sens_re_obj substition: ',
$case_sens_re_obj->replace($test_string, '_'), "\n";
print 'case_insens_re_obj substition: ',
$case_insens_re_obj->replace($test_string, '_'), "\n";
##
##
case_sens_re_obj match: NO
case_insens_re_obj match: YES
case_sens_re_obj substition: ABC
case_insens_re_obj substition: A_C