Theo mặc định , thay thế lấy một chuỗi như là một phần để thay thế. Để thực thi mã trong quá trình thay thế, bạn phải sử dụng cờ e
.
$numOfChar = 10;
s/^(.*)/' ' x $numOfChar . $1/e;
Điều này sẽ thêm $numOfChar
không gian vào đầu văn bản của bạn. Để làm điều đó cho tất cả các dòng trong văn bản hoặc sử dụng -p
cờ (cho nhanh chóng, xử lý một dòng):
cat foo.txt | perl -p -e "$n = 10; s/^(.*)/' ' x $n . $1/e/" > bar.txt
hoặc nếu đó là một phần của một kịch bản lớn hơn sử dụng -g
và -m
cờ (-g
cho toàn cầu , tức là lặp đi lặp lại thay và -m
để làm ^
trận đấu vào lúc bắt đầu của mỗi dòng):
$n = 10;
$text =~ s/^(.*)/' ' x $n . $1/mge;
bạn có nhận được bất kỳ thông báo lỗi? – tstenner