首页 > 解决方案 > 在 Perl 中使用未初始化值替换 (s///) 警告

问题描述

我收到以下 perl 代码的警告:

my $current_email = '';

$current_email = 'saashtechs@gmail.com';

my $to_email =~ s/^To:(.*)/To: $current_email/m;

警告是Use of uninitialized value in substitution (s///)

标签: perl

解决方案


当您使用绑定操作符=~进行搜索和替换时,搜索的值是操作符的左侧。

在你的情况下,这是$to_email.

但是,在您的代码中,当您使用绑定运算符时,此变量未初始化,这意味着它没有初始值。

因此,错误。

参考:

  • perlretut:正则表达式教程
  • perlop : Perl 运算符(绑定运算符)

推荐阅读