问题列表 - 第4061页

如何在Perl模块中创建私有函数?

我正在研究一个小的Perl模块,由于某种原因,我有一个测试驱动程序脚本,它使用我的新模块调用我认为是私有的函数之一,并且它是成功的.我很惊讶,所以我开始搜索谷歌,我真的找不到任何关于如何在Perl模块中创建私有函数的文档...

我看到一个地方说要在你的"私人"功能的右大括号之后加一个分号,如下所示:

sub my_private_function {
...
}; 
Run Code Online (Sandbox Code Playgroud)

我尝试过,但我的驱动程序脚本仍然可以访问我想要私有的功能.

我会做一些简短的例子,但这就是我所追求的:

模块TestPrivate.pm:

package TestPrivate;

require 5.004;

use strict;
use warnings;
use Carp;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);

require Exporter;

@ISA = qw(Exporter AutoLoader);

our @EXPORT_OK = qw( public_function );
our @EXPORT    = qw( );

$VERSION = '0.01';

sub new {
    my ( $class, %args ) = @_;
    my $self = {};
    bless( $self, $class );
    $self->private_function("THIS SHOULD BE PRIVATE");
    $self->{public_variable} = "This is public";
    return $self;
}

sub public_function {
    my …
Run Code Online (Sandbox Code Playgroud)

perl module perl-module private-functions

32
推荐指数
5
解决办法
3万
查看次数

解析电子邮件地址字符串的最佳方法

所以我正在处理一些电子邮件标题数据,对于to:,from:,cc:和bcc:fields,电子邮件地址可以用多种不同的方式表示:

First Last <name@domain.com>
Last, First <name@domain.com>
name@domain.com
Run Code Online (Sandbox Code Playgroud)

这些变体可以以任何顺序出现在同一个消息中,所有这些变量都以逗号分隔的字符串形式出现:

First, Last <name@domain.com>, name@domain.com, First Last <name@domain.com>
Run Code Online (Sandbox Code Playgroud)

我一直试图想出一种方法将这个字符串解析成单独的名字,姓氏,每个人的电子邮件(如果只提供了一个电子邮件地址,则省略名称).

有人可以建议最好的方法吗?

我试图在逗号上拆分,除了在第一个放置姓氏的第二个例子之外,它会起作用.我想这个方法可以工作,如果我拆分后,我检查每个元素,看它是否包含'@'或'<'/'>',如果没有,那么可以假设下一个元素是名字.这是解决这个问题的好方法吗?我是否忽略了地址可能存在的另一种格式?


更新:也许我应该澄清一点,基本上我要做的就是将包含多个地址的字符串分解为包含地址的单个字符串,无论发送的格式是什么.我有自己的方法来验证和提取信息从一个地址来看,找出分隔每个地址的最佳方法对我来说简直太棘手了.

以下是我想出的解决方案:

String str = "Last, First <name@domain.com>, name@domain.com, First Last <name@domain.com>, \"First Last\" <name@domain.com>";

List<string> addresses = new List<string>();
int atIdx = 0;
int commaIdx = 0;
int lastComma = 0;
for (int c = 0; c < str.Length; c++)
{
    if (str[c] == '@')
        atIdx = c;

    if (str[c] == ',')
        commaIdx = c;

    if (commaIdx > atIdx && …
Run Code Online (Sandbox Code Playgroud)

.net c# parsing

10
推荐指数
2
解决办法
9273
查看次数

断点击中后Visual Studio 2008查看对话框

我正在构建一个C++ MFC应用程序,它一次创建一个模式对话框,同时隐藏父对话框.我希望在Visual Studio中调试时遇到断点时查看新创建的模式对话框.但是,只要遇到断点,就不再呈现对话框的内容.盒子只是白色,或保留在它上面施加的任何图像.程序恢复时,对话框会正常显示,但我需要能够在命中断点时查看对话框,同时Visual Studio调试器"暂停"程序.

c++ mfc breakpoints modal-dialog visual-studio

1
推荐指数
1
解决办法
433
查看次数

LINQ to SQL--最好的学习资源?

这并不是说我不能自己谷歌,但是其他人在我面前走这条路并且我总是对其他程序员发现有用的东西感兴趣,或者不是:)

提前感谢任何输入.

linq linq-to-sql

3
推荐指数
1
解决办法
1005
查看次数

当我安装新版本的软件时,如何消除"指定的服务已存在"?

我有一个VS2008应用程序,其中包括一个服务项目(我称之为ServiceProject).我将安装项目(InstallationProject)设置为RemovePreviousVersions.此外,为InstallationProject 设置自定义操作,从ServiceProject安装,提交,回滚和卸载主输出.

有时,当我构建新版本的安装程序时,我可以安装而不会出错.通常,当我到达设置服务的位置(在安装程序中输入用户名和密码)时 - 它会因错误"指定的服务已存在"而失败.

我不知道为什么它不一致,虽然我认为可能有某种服务签名,如果服务未经修改,它可以成功删除它,但经过修改后,它无法识别服务.但是,我很少对服务进行修改,所以我怀疑是这样的.

如何在没有此错误的情况下使安装程序成功更新服务? 我的解决方法是手动进入控制面板,卸载以前的应用程序,然后运行安装程序.

installer windows-services visual-studio

17
推荐指数
3
解决办法
2万
查看次数

Erlang:不允许的节点/可能是Cookie问题

试图让两个erlang节点相互通信:一个在Ubuntu机器上,另一个在Windows XP上.

我们得到一个" 来自不允许节点的连接尝试 "消息,该消息阻止一个节点从另一个节点接收消息.

他们都使用5.XXX版本的Erlang OTP.

两个节点都有相同的cookie(.erlang.cookie)

我们正在启动接收器节点:

erl -name fred@ipaddress
Run Code Online (Sandbox Code Playgroud)

并使用'fred @ ipaddress'(单引号)调用其上的函数

我们关闭了防火墙.

那么还有什么可能阻止连接呢?

更新:我们使用erlang:get_cookie()检查两个节点上的cookie,值不同.这就是问题所在.我们认为我们通过将相同的.erlang.cookie文件放在我们在两台机器上运行erlang的目录中来设置cookie.但也许这是错误的地方?

更新2:感谢大家的答案.我们选择Ranok作为我们的答案,因为它对我们很有用.我确信一些设置cookie的替代方法也可以.

security erlang erlang-otp

14
推荐指数
2
解决办法
8530
查看次数

阻止以编程方式运行的系统命令的标准错误输出

我在c ++中有这个程序:

#include <iostream>
using namespace std;
int main()
{
char buf[50];
cin.getline(buf,49);
system(buf);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我运行并编译它并键入例如"helo"时,我的程序会输出错误:

  "helo" not found.
Run Code Online (Sandbox Code Playgroud)

我可以阻止显示此错误吗?有没有办法从系统命令中禁用错误​​?

c++ external-process standard-error

1
推荐指数
1
解决办法
410
查看次数

NSPersistentDocument的数据存储何时移动到最终保存位置?

按照核心数据编程指南的核心数据性能页面中 关于BLOB存储的建议,我选择在我的NSPersistenDocument-based应用程序中存储二进制数据 (仅限Leopard,如果这有所不同)在外部文件中(与文档Core分开)数据数据存储)并NDAlias在文档的数据存储中保存对该文件的存档引用.

最后,我希望外部数据文件最终与文档(数据存储)文件位于同一目录中.由于我可能需要在保存文档之前将数据写入外部数据文件(这是一个科学数据采集应用程序,如果可能,应避免因崩溃而丢失数据),我采取了以下方法:

我想在模型相关的类中封装这个外部文件的管理,因为在模式迁移期间我需要相同的功能.因此,在我的NSPersistentDocument's子类中管理外部数据文件 似乎是错误的.

在对象模型的根对象中,我NSTemporaryDirectory()在根对象awakeFromInsert方法中创建外部文件 并存储NDAlias引用数据文件.

然后,我想在保存发生时将外部数据文件移动到与保存的数据存储相同的目录.

我认为didSave这是适当的地方,但看起来在调用didSave方法时,持久存储仍然在临时目录中(大概是FSExchangeObjects'd在创建原子保存操作之前).

我打算因素的逻辑awakeFromInsertdidSave成类的方法,使他们可以架构迁移过程中的自定义实体政策的呼吁 createDestinationInstancesForSourceInstance:entityMapping:manager:error: and endInstanceCreationForEntityMapping:manager:error:分别.

所以,我的问题是:在NSPersistentDocument保存期间,我可以放心,我的根对象objectID.persistentStore.URL是保存的"最终"URL(例如,用户选择保存文件以进行文档保存)?

cocoa core-data

5
推荐指数
0
解决办法
601
查看次数

你对Clojure有什么看法?

你们对Clojure有什么看法?我正在考虑接下来学习它,目前正在使用Erlang并且除了记录惨败之外总体上对它很满意...... Clojure和LISP一样强大吗?

lisp clojure

51
推荐指数
8
解决办法
2万
查看次数

仅适用于特定ID的元素的CSS

我有一个具有id的div元素,这个div包含一组输入和标签.我只想在这个特定div中设置输入样式但是......以下样式一切(全局)而不是将范围保持在#ParentDiv中

#ParentDiv label,input { display: inline; }
Run Code Online (Sandbox Code Playgroud)

另外,有可能在IE6/7中使用有效的css做这种类型的事情吗?

css

41
推荐指数
1
解决办法
7万
查看次数