Tôi có đoạn mã sau:Tại sao Perl thay chuỗi của tôi bằng "1"?
#$domain = domainname.co.uk
#$root = public_html
#$webpage = domainname.co.uk/foo/bar/foobar.html
my $string = ($webpage =~ s/^$domain//g);
my $linkFromRoot = $dbh->quote($root . $string);
Thông thường này hoạt động tốt nhưng đối với một số lý do đầu ra là "public_html 1" thay vì "public_html/foo/bar/foobar.html".
Có ai có thể xem tại sao không?
Khi bạn gặp phải các sự cố này, hãy bắt đầu chia mã của bạn để tìm nơi dữ liệu vấn đề xuất hiện. Trong trường hợp này, bạn sẽ kiểm tra giá trị của '$ string' trước khi bạn sử dụng nó, tìm ra rằng đó là' 1', sau đó đọc lên toán tử thay thế để xem nó đang làm gì. :) –
Off-topic một lần nữa, nhưng tại sao DBI 'quote' thay vì placeholders? :) – hobbs