小编Chr*_*ris的帖子

Perl在执行unix命令时表现得很奇怪

执行attatched代码时,输​​入f将返回:

Arthur Putie:923-835-8745:923-812-6789:23 Wimp Lane, Kensington, DL 38758:8/31/69:126000
Barbara Kertz:385-573-8326:385-555-8321:832 Ponce Drive, Gary, IN 83756:12/1/46:268500
Betty Boop:245-836-8357:245-876-7656:635 Cutesy Lane, Hollywood, CA 91464:6/23/23:14500
Ephram Hardy:293-259-5395:293-222-3334:235 CarltonLane, Joliet, IL 73858:8/12/20:56700
Run Code Online (Sandbox Code Playgroud)

输入l时返回与输入f相同的内容,根据名字排序.

        print "Please choose either first or last name (f/l): ";
        $type = <>;
        chomp($type);
        if ( $type == "f" ) {
            system("sort list.txt");
        } elsif ( $type == "l" ) {
            system("sort -k2 list.txt");
        } else {
            print "Choice not recognized.\n";
        }
Run Code Online (Sandbox Code Playgroud)

但是,如果我在UNIX中手动执行命令,则命令按原样排序,([sort list.txt]是第一个名称alphabatized,[sort -k2 list.txt]是姓氏aplphabetized).

为什么会发生这种情况的任何想法,或解决方法的变通方法?我是perl的新手,所以我宁愿坚持使用UNIX命令替代方案,而不是纯粹的perl脚本解决方案.

unix perl

0
推荐指数
1
解决办法
65
查看次数

标签 统计

perl ×1

unix ×1