# RexInline Rex::Inline 是一个在perlä¸ç›´æŽ¥è°ƒç”¨rexçš„æŽ¥å£ ### 适用场景 虽然 `rex` 的命令行工具很好用, å¯æ˜¯æœ‰æ—¶ä¸æƒ³å†™ Rexfile, 并且如果想把 Rex 的功能模å—化 给其他App调用的时候, 就需è¦ç”¨åˆ°è¿™ä¸ª API 了。 ### 调用方法 1. 匿å调用 Rex use Rex -feature => ['1.0']; use Rex::Inline; my $rex_inline = Rex::Inline->new; $rex_inline->add_task( { user => $user, server => [@server], password => $password, # private_key => $private_key_path, # public_key => $public_key_path, func => sub { # 这里写è¦åœ¨ Rex ä¸æ‰§è¡Œçš„è¯å¥ } } ); $rex_inline->execute; my $reports = $rex_inline->reports; 2. 写æˆæ¨¡å— #### Test.pm package Test; use Moose; # or Moo use Rex -feature => ['1.0']; extends 'Rex::Inline::Base'; sub func { my $self = shift; return sub { say run "uptime" say $self->input; } } 1; ### t.pl use Test; use Rex::Inline; my $rex_inline = Rex::Inline->new; $rex_inline->add_task( Test->new( user => $user, server => [@server], password => $password, # private_key => $private_key_path, # public_key => $public_key_path, input => 'test', # ä»»ä½•æƒ³ä¼ ç»™æ¨¡å—çš„å‚æ•° ) ); $rex_inline->execute; my $reports = $rex_inline->reports;