Can';t exec“;银行标识代码:错误的文件描述符(Perl)
我正试图解决一个问题一天,经过许多不受干扰的搜索,我在这里 我试图在Perl脚本上使用ImageMagick套件中的二进制转换来裁剪图片 当我尝试以下简单代码时:Can';t exec“;银行标识代码:错误的文件描述符(Perl),perl,exec,Perl,Exec,我正试图解决一个问题一天,经过许多不受干扰的搜索,我在这里 我试图在Perl脚本上使用ImageMagick套件中的二进制转换来裁剪图片 当我尝试以下简单代码时: use Shell qw(convert); convert("-crop", "50%x50%", $Src, "new_image.png"); 在一个单独的文件上,工作完美 但是,当我尝试在我正在从事的项目上实现它时(我正在实习,正在修复功能),会出现消息“Can not exec convert:Bad file desc
use Shell qw(convert);
convert("-crop", "50%x50%", $Src, "new_image.png");
在一个单独的文件上,工作完美
但是,当我尝试在我正在从事的项目上实现它时(我正在实习,正在修复功能),会出现消息“Can not exec convert:Bad file descriptor!”
我检查了$Src的路径,尝试通过硬代码重新放置,设置路径,没有任何更改
但是
如果我尝试一个简单的方法:
convert(-h);
太好了!
我想前面的代码中可能有干扰,但不确定
Ps:这个项目是从一个托管在本地的php服务器启动的,如果它改变了一些东西,但如果从来没有
非常感谢您的阅读和回答
---编辑---
要求的实际代码
Use Shell qw(convert);
.
.
.
sub checkSubScreen
{
#Parameters init
my ($this, $Scr0, $Scr1) = @_;
convert("-crop", "50%x50%", $Scr0, "tmp/scr0_crp.png");
convert("-crop", "50%x50%", $Scr1, "tmp/scr1_crp.png");
....
我无法向您展示整个代码,它确实太大了,但只要问一下,我就会尝试展示 错误消息来自。我不知道有人认为使用
Shell
而不是更传统的system
/qx
/pipe open/IPC::Open3
toolkit可以获得什么,特别是我看不到使用Shell
可以获得什么
尝试更传统的系统调用
@args = ("50%x50%", $Src, "new_image.png");
system("convert", @args) and warn "convert @args: exit code was $?";
看看是否会收到更传统的错误消息。好的,最后我决定使用PerlMagick Api,因为它可以正常工作,我认为我的问题是由环境造成的,可能非常具体
这就是答案 我们需要查看实际出现问题的代码以帮助您。是否有原因该标题说
无法执行“bin”
,但您将错误报告为无法执行转换
?是的,可以让标题更通用一点,但这不会改变问题中的任何东西;)