代码之家  ›  专栏  ›  技术社区  ›  Geo

如何在Perl scalars上调用方法?

  •  4
  • Geo  · 技术社区  · 15 年前

    我看到了一些在scalars(数字)上调用方法的代码,比如:

    print 42->is_odd
    

    为了在代码中实现这种“功能”,您必须重载什么?

    2 回复  |  直到 15 年前
        1
  •  10
  •   Community CDub    8 年前
        2
  •  1
  •   Simon    15 年前

    这是一个使用AutoBox功能的示例。

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    
    package MyInt;
    
    sub is_odd {
      my $int = shift;
      return ($int%2);
    }
    
    package main;
    
    use autobox INTEGER => 'MyInt';
    print "42: ".42->is_odd."\n";
    print "43: ".43->is_odd."\n";
    print "44: ".44->is_odd."\n";