擅长:python、mysql、java
<p>regexp很好,问题在于如何设置变量</p>
<p>由于Perl的运算符优先级,您需要将<code>$1, $2, $3, $4</code>括在括号中才能进行列表赋值</p>
<p>换成</p>
<pre><code>my ($name, $expense, $date_expense, $date_paid) = ($1, $2, $3, $4) if ($entry =~ m/^(.+)\s((?:\d+\.)?\d{1,3},\d{2})\s(\d{2}\.\d{2}\.\d{2})\s(\d{2}\.\d{2}\.\d{2})$/);
</code></pre>
<p><a href="https://ideone.com/2P1Q7v" rel="nofollow noreferrer">working demo</a></p>