Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何解决“未初始化的值$2在拼接(.)或字符串中的使用”

如何解决“未初始化的值$2在拼接(.)或字符串中的使用”
EN

Stack Overflow用户
提问于 2018-10-01 14:22:43
回答 1查看 336关注 0票数 0

下面是我的代码。我想在一行中打印数据$1和$2,并使用,将其拆分。为什么我不能打印数据?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/intel/bin/perl

use strict;
use warnings;

use IO::Uncompress::Gunzip qw(gunzip $GunzipError);

my $input = "par_disp_fabric.all_max_lowvcc_qor.rpt.gz";
my $output = "par_disp_fabric.all_max_lowvcc_qor.txt";

gunzip $input => $output
or die "gunzip failed: $GunzipError\n";

open (FILE, '<',"$output") or die "Cannot open $output\n";

while (<FILE>) {
  my $line = $_;
  chomp ($line);

  if ($line =~ m/^\s+Timing Path Group \'(\S+)\'/) {
    $line = $1;

    if ($line =~ m/^\s+Levels of Logic:\s+(\S+)/) {
      $line = $2;
    }
  }
  print "$1,$2\n";
}

close (FILE);
EN

回答 1

Stack Overflow用户

发布于 2018-10-01 14:44:54

你的程序的要点在这里:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if ($line =~ m/^\s+Timing Path Group \'(\S+)\'/) {
  $line = $1;

  if ($line =~ m/^\s+Levels of Logic:\s+(\S+)/) {
    $line = $2;
  }
}

正则表达式捕获变量($1$2等)是在将字符串与包含捕获括号集的正则表达式进行匹配时设置的。第一个捕获括号设置$1的值,第二个捕获括号设置$2的值,依此类推。为了给$2赋值,您需要匹配一个包含两组捕获括号的正则表达式。

这两个正则表达式只包含一组捕获括号。因此,只会在每个匹配项上设置$1$2将永远不会被赋予一个值-导致您看到的警告。

您需要重新考虑代码中的逻辑。我不知道为什么你会认为$2在这里有价值。您的代码有点混乱,所以我无法提供更具体的解决方案。

然而,我可以给你一些更一般的建议:

  • 使用词法文件句柄和open()的三参数版本。

打开我的$fh,'<',$output周围的引号不需要"$output"

  • There。

open my $fh,'<',$output

  • 我知道你为什么要这么做,但是对于你读出来的文件来说,$output可能是一个容易混淆的名字。考虑更改它。

  • 始终在open()错误消息中包含$!

打开我的输出,'<',$output或die“无法打开‘$ $fh’:$!\n”;

  • 您的$line变量似乎不必要。为什么不将行数据保存在$_中,这将简化您的代码:

而(<$fh>) { chomp;#默认适用于$_,如果(/some regex/) {#默认适用于$_ #等等...} }

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52593229

复制
相关文章
在C或C++中如何使用PI(π)值
参考链接: C++ acos() #include <math.h> #define PI acos(-1) 主要是利用利用数学函数中的反三角函数,但是要注意一定引入math包           arccos          ⁡          (          −          1          )          =          π         \arccos(-1)=\pi      arccos(−1)=π  完整示例:  //#define LOCAL #includ
用户7886150
2021/02/09
5.9K0
mysql字符串拼接的方法_sql中拼接字符串的方法
总是记不住字符串拼接,每次都要百度去搜索,所以在这里记录一下,好方便后续的查找,如有错误和问题可以提出,谢谢。
全栈程序员站长
2022/11/14
22.1K0
mysql字符串拼接的方法_sql中拼接字符串的方法
【未解决】获取注解上的注解的值
获取失败,debug发现从方法上获取的Test2类的class对象是代理对象,而代理对象本身并没有拿到该注解。 网上说使用getSuperClass获取到代理的原始对象,但是这个代理使用的不是继承,一番查找后,使用如下方法获取代理的原始对象
devi
2021/08/19
1.3K0
【未解决】获取注解上的注解的值
mysql 字符串动态拼接_mysql中的字符串的拼接「建议收藏」
在Java、C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:”1″+”3″、”a”+”b”。
全栈程序员站长
2022/11/10
3.1K0
拼接查询结果中的字符串
但是如果查询过程中有一个字符串为 null 则整个结果都将是 null ,这时可以将 null 转换为 ‘’
zucchiniy
2020/05/22
2.4K0
mysql字符串拼接有空值_MySQL字符串拼接「建议收藏」
group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )
全栈程序员站长
2022/11/11
3K0
java sql拼接字符串_SQL中字符串拼接
在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。
全栈程序员站长
2022/07/05
4.1K0
java sql拼接字符串_SQL中字符串拼接
python中字符串拼接
记录一下python中字符串拼接的常见用法 #后为注释或者打印结果 # -*- coding: utf-8 -*- __author__ = 'lightClouds917' '字符串拼接' # 1.用+拼接 print('aa'+"好的") # aa好的 # print('aa'+34) # TypeError: must be str, not int # 2.用,拼接 ------>,处会多出一个空格 print('aa','好的') # aa 好的 print('aa
IT云清
2019/01/22
8940
AI如何帮助解决未解决的犯罪问题
到目前为止,人工智能在警务方面的使用主要集中在面部识别和帮助以最有效的方式部署资源等领域,但 诺桑比亚大学队最近的  一项研究强调地点了它如何能够帮助解决未解决的犯罪,特别是通过提供洞察犯罪所用的武器。
Java架构师历程
2019/03/08
1.3K0
使用mysql中的concat()函数进行字符串拼接_mysql contains
mysql> update tf_user set avatar = concat(“chongwu_”,avatar);    //这里用“+”是数学逻辑运算符号;用php中的”.”,链接字符串也是不行的;
全栈程序员站长
2022/11/11
2K0
n2n使用和编译(以及未解决的问题)
armbian需要提前安装cmake gcc等软件,以及: apt-get install pkg-config
Laikee
2022/04/25
1.1K0
【说站】java拼接字符串的使用
2、当将一个字符串与一个非空字符串的值进行拼接时,后者会转换成字符串(任何一个Java对象都可以转换成字符串)。
很酷的站长
2022/11/24
7120
【说站】java拼接字符串的使用
在LR中动态拼接参数的问题
在很多时候系统是提供了多选并且组合提交的操作,这个时候请求就需要动态拼接了,这里举个参考的例子给大家,希望能够让大家明白怎么回事。
TestOps
2022/04/04
2K0
在LR中动态拼接参数的问题
未解决:长字符串含…
用reduce拼了一个超长sql语句,大约65000字符,运行通不过,报错: OperationalError: (1054, "Unknown column 'nan' in 'field list
用户1075292
2018/01/23
8980
未解决:长字符串含…
如何解决在DLL的入口函数中创建或结束线程时卡死
通常情况下并不会使用到DLL的MAIN函数,因为delphi的框架已经把Main函数隐藏起来
战神伽罗
2019/07/24
3.8K0
如何解决在DLL的入口函数中创建或结束线程时卡死
[Office] 在Excel中,如何根据值求出其在表中的坐标
在使用excel的过程中,我们知道,根据一个坐标我们很容易直接找到当前坐标的值,但是如果知道一个坐标里的值,反过来求该点的坐标的话,据我所知,excel没有提供现成的函数供使用,所以需要自己用VBA编写函数使用 (代码来自互联网)
轻舞飞扬SR
2021/02/24
8.9K0
Python中字符串拼接的N种方法
使用这种方式进行字符串连接的操作效率低下,因为python中使用 + 拼接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当拼接字符串较多时自然会影响效率。
一墨编程学习
2019/07/16
1.6K0
Python中字符串拼接的N种方法
【DB笔试面试806】在Oracle中,如何查找未使用绑定变量的SQL语句?
利用V$SQL视图的FORCE_MATCHING_SIGNATURE字段可以识别可能从绑定变量或CURSOR_SHARING获益的SQL语句。如果SQL已使用绑定变量或者CURSOR_SHARING,那么FORCE_MATCHING_SIGNATURE在对其进行标识时将给出同样的签名。换句话说,如果两个SQL语句除了字面量的值之外都是相同的,它们将拥有相同的FORCE_MATCHING_SIGNATURE,这意味着如果为它们提供了绑定变量或者CURSOR_SHARING,它们就成了完全相同的语句。所以,使用FORCE_MATCHING_SIGNATURE字段可以识别没有使用绑定变量的SQL语句。
AiDBA宝典
2020/05/25
6.4K0
如何实现python字符串的拼接和截取
字符串的拼接之前我们也使用过的,就是使用+号来拼接字符串,如果遇到数字,必须要把数字转成字符串之后才能拼接。至于截取字符串,需要通过下标来对字符串进行索引,至于这么索引我们后面就说。
python自学网
2021/11/29
9600
如何实现python字符串的拼接和截取
Python中拼接字符串的7种方式
这种方式第一次出现是在C语言中,%s是一个占位,意味着这里可以被放置一个字符串,实际的字符串的值通过后面的元组传递。占位符不仅仅有%s,如%d代表一个整数、%f代表浮点数等等。
用户7886150
2021/01/15
2.8K0

相似问题

在级联中使用未初始化值$2 (.)或串

35

在的连接或字符串中使用未初始化值

10

在连接(.)中使用未初始化的值或字符串

20

未初始化值$a在级联(.)中的使用或串

25

在级联(.)中使用未初始化值(.)或字符串在

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文