尝试运行DBI升级到El Capitan后使用的perl脚本时遇到以下错误(典型!):
install_driver(mysql) failed: Can't load '/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
Reason: unsafe use of relative rpath libmysqlclient.18.dylib in /Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle with restricted binary at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194.
Run Code Online (Sandbox Code Playgroud)
看到贴在Python中的类似问题的解决方案后,在这里我已经发布了以下的Perl相同的解决方案.
我正在尝试找出一条很好的正则表达式来匹配以下内容:
1:[any chars here except newlines]|1:[any chars here except newlines]...
Run Code Online (Sandbox Code Playgroud)
我希望我的正则表达式能够匹配这种类型的无限数量的重复。我最接近弄清楚的是 with '(1:[^|]*\|)\1+',但它不起作用有两个原因。首先,这只会找到在字符串末尾有附加管道的字符串。其次,第一个捕获中的文本必须始终相同。
我可以使用拆分来解决这个问题,但我只是想知道是否有一种在正则表达式中执行此操作的好方法。