小编Sch*_*ern的帖子

.rpm文件名的.rf部分是什么意思?

我有一个rpm文件perl-Tidy-20071205-1.rf.noarch.rpm.这个.rf部分是什么意思?

rpm

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

PostgreSQL阻塞太多插件

我正在研究一个研究平台,通过Twitter API读取相关的Twitter提要,并将它们存储在PostgreSQL数据库中以供将来分析.中间件是Perl,服务器是运行Debian linux的8GB内存的HP ML310.

问题是twitter feed可能非常大(每秒很多条目),而且在返回等待下一条推文之前我无法等待插入.所以我所做的就是使用fork(),这样每条推文都会获得一个新进程,可以插入到数据库和监听器中,并快速返回以获取下一条推文.但是,因为这些进程中的每一个都有效地打开了与PostgreSQL后端的新连接,所以系统永远不会赶上它的twitter feed.

我愿意使用连接池建议和/或升级硬件,如果有必要使这项工作,但将不胜感激任何建议.这可能是RAM限制,还是有配置或软件方法我可以尝试使系统足够快?

postgresql twitter perl insert

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

如何在反引号命令失败时在Perl中获取错误消息

我有一个变量$deployment_tarfile,其中包含一个带有svn位置的tar文件.在我使用的Perl脚本反引号命令中

$depsvn = `svn ls $deployment_tarfile` 
Run Code Online (Sandbox Code Playgroud)

检查文件是否存在于svn中.如果失败那么我们如何记录错误消息?

目前,如果命令失败,那么它只显示在shell中.我想专门打印它.我怎样才能做到这一点?

我试过$!但它没有显示.

$depsvn = `svn ls $deployment_tarfile`;
if ( $? != 0 ) {
    print "$!"; # It displays blank
}
Run Code Online (Sandbox Code Playgroud)

我也试过$OS_ERROR$ERRNO不是$!但它没有用.

如果svn命令失败,如何在Perl中打印错误消息?

更新:我使用的是Perl 5.8.8版

svn perl

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

C中奇怪的内存损坏

在回答另一个问题时,我写了一些简单的代码来初始化和打印2D数组.但是一些非常奇怪的事情正在发生.

#include <stdio.h>
#include <stdlib.h>

void print_row( const int *row, size_t num_cols ) {
    printf("%p\n", (void*)row);
    for( size_t col_num = 0; col_num < num_cols; col_num++ ) {
        printf(" %2d ", row[col_num]);
    }
    puts("");
}

int **make_board( const size_t num_rows, const size_t num_cols ) {
    int **board = malloc( sizeof(int) * num_rows );

    for( size_t row_num = 0; row_num < num_rows; row_num++ ) {
        int *row = calloc( num_cols, sizeof(int) );
        board[row_num] = row;
        print_row(row, num_cols);
    }

    return board;
}

void …
Run Code Online (Sandbox Code Playgroud)

c clang

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

如何在大文本文件中使用File :: Map进行正则表达式搜索/替换以避免"Out of Memory"-Error?

更新2:解决了.见下文.

我正在将一个大的txt文件从旧的基于DOS的库程序转换为更有用的格式.我刚开始使用Perl并设法将这样的脚本放在一起:

BEGIN {undef $/; };
open $in,  '<',  "orig.txt"      or die "Can't read old file: $!"; 
open $out, '>',  "mod.txt"  or die "Can't write new file: $!";
while( <$in> )  
{
$C=s/foo/bar/gm;
print "$C matches replaced.\n"
etc...
print $out $_;
}
close $out;
Run Code Online (Sandbox Code Playgroud)

这是相当快的,但经过一段时间后,我总是得到一个"Out of Memory" - 由于缺少RAM/Swap-Space而导致的错误(我在Win XP上使用2GB的Ram和1.5GB的Swap-File).在看了一下如何处理大文件后,File::Map在我看来这是一个避免这个问题的好方法.但是,我在实施它时遇到了麻烦.这就是我现在所拥有的:

#!perl -w
use strict; 
use warnings;
use File::Map qw(map_file);

my $out = 'output.txt';
map_file my $map, 'input.txt', '<';
$map =~ s/foo/bar/gm;

print $out $map;
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误: Modification of a …

regex perl filemap

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

如果列具有默认值,那么NOT NULL约束是否多余?

例如...

CREATE TABLE phone (
    id            integer primary key,
    country_code  integer not null default 1,
    area_code     integer not null,
    number        integer not null
);
Run Code Online (Sandbox Code Playgroud)

我可以安全地not null从中删除country_code吗?认为country_code必须定义的我的ORM验证太混乱了。

sql

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

为什么 SQL 语句 SELECT ROUND(45.926, -1) FROM DUAL 打印 50

双重工作如何?我已经用许多值执行了Select Round(45.926,-1) from dual它,它打印 50 而 Select Round(45.926,-2) from dual打印 0。

sql rounding

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

为什么getchar()在switch case和while循环中没有暂停?

#include <stdio.h>
#include <stdlib.h>

main()
{
    int Q = 1;
    while(Q==1)
    { 
        system("clear");
        printf("MAIN MENU\n");
        printf("--------------------------------------\n");
        printf("1 - See all files\n");
        printf("2 - See all files with permission\n");
        printf("3 - VIM Editor\n");
        printf("4 - EXIT\n");

        fputs("Enter Choice : ",stdout);
        char ch = getchar();

        switch(ch)
        {
            case '1' : system("ls"); break;
            case '2' : system("ls -l"); break;
            case '3' : system("vi"); break;
            case '4' : Q=0; break;
            default  : puts("Wrong Choice.."); break;
        }

        fflush(stdin);

        fputs("PRESS ENTER TO CONTINUE...",stdout);
        getchar();
    }
} …
Run Code Online (Sandbox Code Playgroud)

c

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

如果数组有两个最大元素?

在此代码中,如果用户键入 2,两次和 1,两次。然后有两个最大元素,应该打印 Kinder 和 Twix。但是怎么样?我可能可以使用 if 方法来做到这一点,但这会使我的代码更长。有没有很酷的版本?我可以只用一个 if 吗?

a = [0, 0, 0,]
b = ["Kinder", "Twix", "Mars"]

while true 
  input = gets.chomp.to_i
  if input == 1
    a[0] += 1
  elsif input == 2
    a[1] += 1
  elsif input == 3 
    a[2] += 1
  elsif input == 0 
    break
  end 
end

index = a.index(a.max)
chocolate = b[index] if index
print a.max,chocolate
 
Run Code Online (Sandbox Code Playgroud)

ruby arrays max

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

为什么 git 开发人员为命令 git checkout 选择单词 checkout ?

我试图理解为什么 git 开发人员为命令“git checkout”选择“checkout”一词。将“checkout”一词翻译成葡萄牙语(我的母语)并没有澄清“checkout”一词的含义。虽然我了解该命令对我的 git 项目的影响,但如果该命令是 git abrakadabra 它对我来说听起来是一样的。

git version-control terminology checkout

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

标签 统计

perl ×3

c ×2

sql ×2

arrays ×1

checkout ×1

clang ×1

filemap ×1

git ×1

insert ×1

max ×1

postgresql ×1

regex ×1

rounding ×1

rpm ×1

ruby ×1

svn ×1

terminology ×1

twitter ×1

version-control ×1