Tôi có một tập lệnh perl đang sử dụng đường dẫn tệp tương đối.đường dẫn tệp tương đối trong perl
Đường dẫn tương đối dường như liên quan đến vị trí mà tập lệnh được thực thi thay vì vị trí của tập lệnh perl. Làm cách nào để tạo các đường dẫn tương đối của tôi liên quan đến vị trí của tập lệnh?
Ví dụ tôi có một cấu trúc thư mục
dataFileToRead.txt
->bin
myPerlScript.pl
->output
bên trong kịch bản perl tôi mở dataFileToRead.txt sử dụng mã của tôi $ rawDataName = "../dataFileToRead.txt"; mở INPUT, "<", $ rawDataName;
Nếu tôi chạy kịch bản perl từ thư mục bin sau đó nó hoạt động tốt
Nếu tôi chạy nó từ thư mục cha sau đó nó không thể mở các tập tin dữ liệu.
https://encrypted.google.com/search?q=findbin+site:use .perl.org – daxim
@daxim: c của bạn omment có lẽ là câu thần chú * FindBin bị hỏng *. Tôi biết về điều này, nhưng không thể dễ dàng tìm thấy một lời giải thích, một ví dụ về sự thất bại của nó liên quan đến câu hỏi này, hoặc một mô-đun thay thế. Có lẽ bạn có thể giúp chúng tôi? – Borodin
Liên kết trực tiếp: [FindBin bị hỏng] (http://www.perlmonks.org/?node_id=41213) (cố định trong lõi kể từ giữa năm 2011); [FindBin dường như nghĩ rằng nó cần thiết để đi bộ toàn bộ con đường] (http://use.perl.org/comments.pl?sid=36400&cid=56760); [mã thay thế] (http://use.perl.org/~Aristotle/journal/33996) hoặc có lẽ FindBin :: Real hoặc lib :: abs.Tôi không bao giờ có mong muốn làm điều này so sánh bởi vì tôi không bao giờ cần FindBin hoặc chức năng tương đương bởi vì tôi biết về bao bì và tính năng chia sẻ dir. – daxim