perl中的rel2abs,用于解析文件路径中的

perl中的rel2abs,用于解析文件路径中的,perl,Perl,我希望打印的行没有。。在解决了它之后,类似于下面的内容 /local/mnt/LINUX/platform/../source/gnss/api/src/v02.c /local/mnt/LINUX/project/../source/gnss/api/../../hexagon-infra/q6-00/include/internal.h 请您提供帮助,提前谢谢。您必须使用Cwd模块中的realpath函数: 您必须使用Cwd模块中的函数realpath: 工作 工作 不一定指 /local

我希望打印的行没有。。在解决了它之后,类似于下面的内容

/local/mnt/LINUX/platform/../source/gnss/api/src/v02.c
/local/mnt/LINUX/project/../source/gnss/api/../../hexagon-infra/q6-00/include/internal.h

请您提供帮助,提前谢谢。

您必须使用Cwd模块中的realpath函数:


您必须使用Cwd模块中的函数realpath:

工作

工作

不一定指

/local/mnt/LINUX/platform/../source/gnss/api/src/v02.c
因为

/local/mnt/LINUX/source/gnss/api/src/v02.c
可能是一个符号链接。因此,x/。。未经文件系统检查,无法安全折叠。Spec不执行任何文件系统检查,但Cwd执行

/local/mnt/LINUX/platform
不一定指

/local/mnt/LINUX/platform/../source/gnss/api/src/v02.c
因为

/local/mnt/LINUX/source/gnss/api/src/v02.c
可能是一个符号链接。因此,x/。。未经文件系统检查,无法安全折叠。Spec不执行任何文件系统检查,但Cwd执行

/local/mnt/LINUX/platform
将此项添加到循环$dep=~s |/[^/]+/\.\./|/| g中,而$dep=~m |/../|;将此项添加到循环$dep=~s |/[^/]+/\.\./|/| g中,而$dep=~m |/../|;
/local/mnt/LINUX/platform
use Cwd qw( abs_path );

print abs_path( $dep );