0
동적 교체 정규 표현식을 처리하기 위해 eval을 사용하고 있습니다. 왼쪽의 값 캡처 ($ 1)가 정규 표현식의 오른쪽에 사용되지 않습니다. 도움이 될 것입니다.
#!/usr/bin/perl
use strict;
my $string = "test-txt";
# Attempt 1
my $regexp_m = '-(\S+)$';
my $regexp_r = '.$1';
my $string2 = eval{ $string =~ s/$regexp_m/$regexp_r/; return $string; };
# Attempt 2
my $regexp = 's/(\S+)$/.$1/';
my $string3 = eval{ $string =~ $regexp; return $string; return $string; };
print "Attempt 1: $string2\n";
print "Attempt 2: $string3\n";
exit;
출력 : 시도 1. 시험 $ 1 시도 2. 시험 $ 1