Tôi đang cố gắng tạo một băm duy trì thứ tự mà các phím được thêm vào. Trong phần "Tạo một băm và bảo quản thứ tự thêm" của this page, nó cung cấp một đoạn mã sửa đổi một băm để khi bạn làm keys
nó trả về các khóa theo thứ tự mà bạn đã chèn chúng vào băm.Trong Perl, làm thế nào tôi có thể sử dụng Tie :: IxHash với một từ điển trong khi 'sử dụng nghiêm ngặt' được bật?
Khi tôi làm đoạn sau:
use strict;
our %foo;
use Tie::IxHash;
tie (%foo, Tie::IxHash);
Nó không thành công với:
Bareword "Tie::IxHash" not allowed while "strict subs" in use at /nfs/pdx/home/rbroger1/tmp.pl line 4.
Execution of /nfs/pdx/home/rbroger1/tmp.pl aborted due to compilation errors.
Làm thế nào tôi có thể nhận được Tie :: IxHash để làm việc khi use strict
là trên?
Ví dụ của dsolimano đã hoạt động.
use strict;
our %foo;
use Tie::IxHash;
tie (%foo, "Tie::IxHash");
$foo{c} = 3;
$foo{b} = 2;
$foo{a} = 1;
print keys(%foo);
in:
cba
mà không có dòng tie...Tie::IxHash
nó là
cab
đủ chắc chắn. Điều đó hiệu quả. Cập nhật vé thứ với đầy đủ ví dụ –
FWIW, doc CPAN là: '# đơn giản usage' 'sử dụng Tie :: IxHash;' ' buộc HASHVARIABLE, Tie :: IxHash [, LIST]; ' Không đề cập đến thứ hai arg là một chuỗi! (Nhưng sử dụng báo giá hoạt động.) – Chap
Nhìn vào perldoc - http://perldoc.perl.org/perltie.html, 'tie VARIABLE, CLASSNAME, LIST' và các ví dụ tất cả sử dụng chuỗi cho' CLASSNAME'. Tôi muốn nói đó là vấn đề với tài liệu 'Tie :: IxHash' trên CPAN. – dsolimano