首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试opendir时出错

尝试opendir时出错
EN

Stack Overflow用户
提问于 2018-08-03 22:08:25
回答 1查看 91关注 0票数 2

我被这段代码卡住了。也许原因是道路上有重音的人物,我不知道。我正在使用的代码如下

代码语言:javascript
复制
my $var2 = realpath('C:\Users\brmelovi\Script\backups');
$source1 = 'N:\NBS_AR\COLLECTION\1.0 Times\2.0 Collections México\1. Macro de solicitação de Desglose';
$name1   = 'macro';

my $absol = path($source1)->absolute;
my @dire  = $absol->children( qr/^$name1/);
say $dire[0];
$dire[0]->copy($var2);

return 1;

文件和路径都存在。我的代码已经使用了另一条路径和名称,如下所示

代码语言:javascript
复制
my $var2 = realpath('C:\Users\brmelovi\Script\backups');
$source1 = 'N:\NBS_AR\SISTEMAS AR\Macro Credit Analysis & Collection';
$name1   = 'Credit Analysis';

my $absol = path($source1) -> absolute;
my @dire  = $absol->children( qr/^$name1/);
say $dire[0];
$dire[0]->copy($var2);

return 1;

我的头和use语句

代码语言:javascript
复制
use v5.28;
use strict;
use utf8;
use warnings;

use Cwd 'realpath';
use autodie;
use Path::Tiny;

错误信息是

在'N:/NBS_AR/COLLECTION/1.0倍/2.0集合MΘxico/1上的错误opendir。宏deΘτπo de Desglose:在第24行没有这样的文件或目录。

编辑:使用

代码语言:javascript
复制
use Encode::Local;
use Encode;

谢谢你的解决办法有点粘。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 23:48:13

是的,可能是道路上的特殊人物。至少,我可以重现所描述的行为,尝试在opendir()上使用UTF-8编码脚本中的目录1. Macro de solicitação de Desglose

尝试使用编码::Locale在将字符串传递给opendir()之前正确地编码它。

代码语言:javascript
复制
...
use Encode::Locale;
use Encode;
...
$source1 = encode(locale => 'N:\NBS_AR\COLLECTION\1.0 Times\2.0 Collections México\1. Macro de solicitação de Desglose');
...

对我起作用了。

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

https://stackoverflow.com/questions/51680621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档